@ng-web-apis/audio
Version:
This is a library for declarative use of Web Audio API with Angular
33 lines • 3.75 kB
JavaScript
import { Directive, inject } from '@angular/core';
import { AUDIO_CONTEXT } from '../tokens/audio-context';
import { CONSTRUCTOR_SUPPORT } from '../tokens/constructor-support';
import * as i0 from "@angular/core";
class WebAudioChannel extends GainNode {
constructor() {
const context = inject(AUDIO_CONTEXT);
const modern = inject(CONSTRUCTOR_SUPPORT);
if (modern) {
super(context);
}
else {
const result = context.createGain();
Object.setPrototypeOf(result, WebAudioChannel.prototype);
return result;
}
}
ngOnDestroy() {
this.disconnect();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioChannel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WebAudioChannel, isStandalone: true, selector: "[waChannel]", exportAs: ["AudioNode"], usesInheritance: true, ngImport: i0 });
}
export { WebAudioChannel };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioChannel, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[waChannel]',
exportAs: 'AudioNode',
}]
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYXVkaW8vc3JjL2RpcmVjdGl2ZXMvY2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7O0FBRWxFLE1BS2EsZUFBZ0IsU0FBUSxRQUFRO0lBQ3pDO1FBQ0ksTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNDLElBQUksTUFBTSxFQUFFO1lBQ1IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xCO2FBQU07WUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFcEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpELE9BQU8sTUFBeUIsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7d0dBbEJRLGVBQWU7NEZBQWYsZUFBZTs7U0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7T25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FVRElPX0NPTlRFWFR9IGZyb20gJy4uL3Rva2Vucy9hdWRpby1jb250ZXh0JztcbmltcG9ydCB7Q09OU1RSVUNUT1JfU1VQUE9SVH0gZnJvbSAnLi4vdG9rZW5zL2NvbnN0cnVjdG9yLXN1cHBvcnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dhQ2hhbm5lbF0nLFxuICAgIGV4cG9ydEFzOiAnQXVkaW9Ob2RlJyxcbn0pXG5leHBvcnQgY2xhc3MgV2ViQXVkaW9DaGFubmVsIGV4dGVuZHMgR2Fpbk5vZGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gaW5qZWN0KEFVRElPX0NPTlRFWFQpO1xuICAgICAgICBjb25zdCBtb2Rlcm4gPSBpbmplY3QoQ09OU1RSVUNUT1JfU1VQUE9SVCk7XG5cbiAgICAgICAgaWYgKG1vZGVybikge1xuICAgICAgICAgICAgc3VwZXIoY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTtcblxuICAgICAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlc3VsdCwgV2ViQXVkaW9DaGFubmVsLnByb3RvdHlwZSk7XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgYXMgV2ViQXVkaW9DaGFubmVsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iXX0=