react-native-audio-api
Version:
react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification
39 lines (33 loc) • 1.06 kB
text/typescript
import { IAudioContext } from '../interfaces';
import BaseAudioContext from './BaseAudioContext';
import AudioManager from '../system';
import { AudioContextOptions } from '../types';
import { NotSupportedError } from '../errors';
export default class AudioContext extends BaseAudioContext {
constructor(options?: AudioContextOptions) {
if (
options &&
options.sampleRate &&
(options.sampleRate < 8000 || options.sampleRate > 96000)
) {
throw new NotSupportedError(
`The provided sampleRate is not supported: ${options.sampleRate}`
);
}
super(
global.createAudioContext(
options?.sampleRate || AudioManager.getDevicePreferredSampleRate(),
options?.initSuspended || false
)
);
}
async close(): Promise<boolean> {
return (this.context as IAudioContext).close();
}
async resume(): Promise<boolean> {
return (this.context as IAudioContext).resume();
}
async suspend(): Promise<boolean> {
return (this.context as IAudioContext).suspend();
}
}