@ng-web-apis/audio
Version:
This is a library for declarative use of Web Audio API with Angular
43 lines • 4.62 kB
JavaScript
import { Attribute, Directive, forwardRef } from '@angular/core';
import { AUDIO_CONTEXT } from '../tokens/audio-context';
import { latencyHintFactory } from '../utils/latency-hint-factory';
import * as i0 from "@angular/core";
class WebAudioContext extends AudioContext {
constructor(latencyHint, sampleRate) {
super({
latencyHint: latencyHintFactory(latencyHint),
sampleRate: parseInt(sampleRate ?? '', 10) || undefined,
});
}
ngOnDestroy() {
void this.close();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioContext, deps: [{ token: 'latencyHint', attribute: true }, { token: 'sampleRate', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WebAudioContext, isStandalone: true, selector: "[waAudioContext]", providers: [
{
provide: AUDIO_CONTEXT,
useExisting: forwardRef(() => WebAudioContext),
},
], usesInheritance: true, ngImport: i0 });
}
export { WebAudioContext };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebAudioContext, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[waAudioContext]',
providers: [
{
provide: AUDIO_CONTEXT,
useExisting: forwardRef(() => WebAudioContext),
},
],
}]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Attribute,
args: ['latencyHint']
}] }, { type: undefined, decorators: [{
type: Attribute,
args: ['sampleRate']
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYXVkaW8vc3JjL2RpcmVjdGl2ZXMvYXVkaW8tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQUVqRSxNQVVhLGVBQWdCLFNBQVEsWUFBWTtJQUM3QyxZQUM4QixXQUErQyxFQUNoRCxVQUF5QjtRQUVsRCxLQUFLLENBQUM7WUFDRixXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDO1lBQzVDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTO1NBQzFELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2QsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0FiUSxlQUFlLGtCQUVULGFBQWEsOEJBQ2IsWUFBWTs0RkFIbEIsZUFBZSwrREFQYjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUNqRDtTQUNKOztTQUVRLGVBQWU7NEZBQWYsZUFBZTtrQkFWM0IsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzt5QkFDakQ7cUJBQ0o7aUJBQ0o7OzBCQUdRLFNBQVM7MkJBQUMsYUFBYTs7MEJBQ3ZCLFNBQVM7MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QVVESU9fQ09OVEVYVH0gZnJvbSAnLi4vdG9rZW5zL2F1ZGlvLWNvbnRleHQnO1xuaW1wb3J0IHtsYXRlbmN5SGludEZhY3Rvcnl9IGZyb20gJy4uL3V0aWxzL2xhdGVuY3ktaGludC1mYWN0b3J5JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3YUF1ZGlvQ29udGV4dF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBVURJT19DT05URVhULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2ViQXVkaW9Db250ZXh0KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJBdWRpb0NvbnRleHQgZXh0ZW5kcyBBdWRpb0NvbnRleHQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCdsYXRlbmN5SGludCcpIGxhdGVuY3lIaW50OiBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkgfCBudWxsLFxuICAgICAgICBAQXR0cmlidXRlKCdzYW1wbGVSYXRlJykgc2FtcGxlUmF0ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbGF0ZW5jeUhpbnQ6IGxhdGVuY3lIaW50RmFjdG9yeShsYXRlbmN5SGludCksXG4gICAgICAgICAgICBzYW1wbGVSYXRlOiBwYXJzZUludChzYW1wbGVSYXRlID8/ICcnLCAxMCkgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHZvaWQgdGhpcy5jbG9zZSgpO1xuICAgIH1cbn1cbiJdfQ==