UNPKG

@ng-web-apis/audio

Version:

This is a library for declarative use of Web Audio API with Angular

37 lines 5.12 kB
import { Attribute, Directive, EventEmitter, inject, Output } from '@angular/core'; import { AUDIO_CONTEXT } from '../tokens/audio-context'; import { asAudioNode, AUDIO_NODE } from '../tokens/audio-node'; import { connect } from '../utils/connect'; import * as i0 from "@angular/core"; class WebAudioWorklet extends AudioWorkletNode { processorerror = new EventEmitter(); constructor(name) { const context = inject(AUDIO_CONTEXT); const node = inject(AUDIO_NODE, { skipSelf: true }); super(context, name); connect(node, this); } onprocessorerror = () => this.processorerror.emit(); ngOnDestroy() { this.disconnect(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioWorklet, deps: [{ token: 'name', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WebAudioWorklet, isStandalone: true, selector: "[waAudioWorkletNode][name]", inputs: { channelCount: "channelCount", channelCountMode: "channelCountMode", channelInterpretation: "channelInterpretation" }, outputs: { processorerror: "processorerror" }, providers: [asAudioNode(WebAudioWorklet)], exportAs: ["AudioNode"], usesInheritance: true, ngImport: i0 }); } export { WebAudioWorklet }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioWorklet, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[waAudioWorkletNode][name]', inputs: ['channelCount', 'channelCountMode', 'channelInterpretation'], providers: [asAudioNode(WebAudioWorklet)], exportAs: 'AudioNode', }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Attribute, args: ['name'] }] }]; }, propDecorators: { processorerror: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2xldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYXVkaW8vc3JjL25vZGVzL3dvcmtsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUV6QyxNQU9hLGVBQWdCLFNBQVEsZ0JBQWdCO0lBRTFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpELFlBQStCLElBQVk7UUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVsRCxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUV3QixnQkFBZ0IsR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVFLFdBQVc7UUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0FqQlEsZUFBZSxrQkFJRCxNQUFNOzRGQUpwQixlQUFlLHdQQUhiLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDOztTQUdoQyxlQUFlOzRGQUFmLGVBQWU7a0JBUDNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDckUsU0FBUyxFQUFFLENBQUMsV0FBVyxpQkFBaUIsQ0FBQztvQkFDekMsUUFBUSxFQUFFLFdBQVc7aUJBQ3hCOzswQkFLZ0IsU0FBUzsyQkFBQyxNQUFNOzRDQUZ0QixjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge09uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0F0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBVURJT19DT05URVhUfSBmcm9tICcuLi90b2tlbnMvYXVkaW8tY29udGV4dCc7XG5pbXBvcnQge2FzQXVkaW9Ob2RlLCBBVURJT19OT0RFfSBmcm9tICcuLi90b2tlbnMvYXVkaW8tbm9kZSc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJy4uL3V0aWxzL2Nvbm5lY3QnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dhQXVkaW9Xb3JrbGV0Tm9kZV1bbmFtZV0nLFxuICAgIGlucHV0czogWydjaGFubmVsQ291bnQnLCAnY2hhbm5lbENvdW50TW9kZScsICdjaGFubmVsSW50ZXJwcmV0YXRpb24nXSxcbiAgICBwcm92aWRlcnM6IFthc0F1ZGlvTm9kZShXZWJBdWRpb1dvcmtsZXQpXSxcbiAgICBleHBvcnRBczogJ0F1ZGlvTm9kZScsXG59KVxuZXhwb3J0IGNsYXNzIFdlYkF1ZGlvV29ya2xldCBleHRlbmRzIEF1ZGlvV29ya2xldE5vZGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwcm9jZXNzb3JlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKEBBdHRyaWJ1dGUoJ25hbWUnKSBuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IGluamVjdChBVURJT19DT05URVhUKTtcbiAgICAgICAgY29uc3Qgbm9kZSA9IGluamVjdChBVURJT19OT0RFLCB7c2tpcFNlbGY6IHRydWV9KTtcblxuICAgICAgICBzdXBlcihjb250ZXh0LCBuYW1lKTtcblxuICAgICAgICBjb25uZWN0KG5vZGUsIHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBvbnByb2Nlc3NvcmVycm9yID0gKCk6IHZvaWQgPT4gdGhpcy5wcm9jZXNzb3JlcnJvci5lbWl0KCk7XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbn1cbiJdfQ==