@ng-web-apis/audio
Version:
This is a library for declarative use of Web Audio API with Angular
37 lines • 5.12 kB
JavaScript
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==