UNPKG

react-native-audio-api

Version:

react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification

123 lines (122 loc) 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _errors = require("../errors"); var _AnalyserNode = _interopRequireDefault(require("./AnalyserNode.web")); var _AudioDestinationNode = _interopRequireDefault(require("./AudioDestinationNode.web")); var _AudioBuffer = _interopRequireDefault(require("./AudioBuffer.web")); var _AudioBufferSourceNode = _interopRequireDefault(require("./AudioBufferSourceNode.web")); var _BiquadFilterNode = _interopRequireDefault(require("./BiquadFilterNode.web")); var _IIRFilterNode = _interopRequireDefault(require("./IIRFilterNode.web")); var _GainNode = _interopRequireDefault(require("./GainNode.web")); var _OscillatorNode = _interopRequireDefault(require("./OscillatorNode.web")); var _PeriodicWave = _interopRequireDefault(require("./PeriodicWave.web")); var _StereoPannerNode = _interopRequireDefault(require("./StereoPannerNode.web")); var _ConstantSourceNode = _interopRequireDefault(require("./ConstantSourceNode.web")); var _WaveShaperNode = _interopRequireDefault(require("./WaveShaperNode.web")); var _ConvolverNode = _interopRequireDefault(require("./ConvolverNode.web")); var _DelayNode = _interopRequireDefault(require("./DelayNode.web")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class OfflineAudioContext { constructor(arg0, arg1, arg2) { if (typeof arg0 === 'object') { this.context = new window.OfflineAudioContext(arg0); } else if (typeof arg0 === 'number' && typeof arg1 === 'number' && typeof arg2 === 'number') { this.context = new window.OfflineAudioContext(arg0, arg1, arg2); } else { throw new _errors.NotSupportedError('Invalid constructor arguments'); } this.sampleRate = this.context.sampleRate; this.destination = new _AudioDestinationNode.default(this, this.context.destination); } get currentTime() { return this.context.currentTime; } get state() { return this.context.state; } createOscillator() { return new _OscillatorNode.default(this); } createConstantSource() { return new _ConstantSourceNode.default(this); } createGain() { return new _GainNode.default(this); } createDelay(maxDelayTime) { return new _DelayNode.default(this, { maxDelayTime }); } createStereoPanner() { return new _StereoPannerNode.default(this); } createBiquadFilter() { return new _BiquadFilterNode.default(this); } createConvolver() { return new _ConvolverNode.default(this); } createIIRFilter(feedforward, feedback) { return new _IIRFilterNode.default(this, { feedforward, feedback }); } createBufferSource(options) { return new _AudioBufferSourceNode.default(this, options); } createBuffer(numberOfChannels, length, sampleRate) { if (numberOfChannels < 1 || numberOfChannels >= 32) { throw new _errors.NotSupportedError(`The number of channels provided (${numberOfChannels}) is outside the range [1, 32]`); } if (length <= 0) { throw new _errors.NotSupportedError(`The number of frames provided (${length}) is less than or equal to the minimum bound (0)`); } if (sampleRate < 8000 || sampleRate > 96000) { throw new _errors.NotSupportedError(`The sample rate provided (${sampleRate}) is outside the range [8000, 96000]`); } return new _AudioBuffer.default({ numberOfChannels, length, sampleRate }); } createPeriodicWave(real, imag, constraints) { if (real.length !== imag.length) { throw new _errors.InvalidAccessError(`The lengths of the real (${real.length}) and imaginary (${imag.length}) arrays must match.`); } return new _PeriodicWave.default(this, { real, imag, ...constraints }); } createAnalyser() { return new _AnalyserNode.default(this); } createWaveShaper() { return new _WaveShaperNode.default(this, this.context.createWaveShaper()); } async decodeAudioDataSource(source) { const arrayBuffer = await fetch(source).then(response => response.arrayBuffer()); return this.decodeAudioData(arrayBuffer); } async decodeAudioData(arrayBuffer) { return new _AudioBuffer.default(await this.context.decodeAudioData(arrayBuffer)); } async startRendering() { return new _AudioBuffer.default(await this.context.startRendering()); } async resume() { await this.context.resume(); } async suspend(suspendTime) { await this.context.suspend(suspendTime); } } exports.default = OfflineAudioContext; //# sourceMappingURL=OfflineAudioContext.web.js.map