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