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

50 lines (49 loc) 1.74 kB
"use strict"; import { NativeAudioAPIModule } from "../specs/index.js"; import { AudioEventEmitter } from "../events/index.js"; if (global.AudioEventEmitter == null) { if (!NativeAudioAPIModule) { throw new Error(`Failed to install react-native-audio-api: The native module could not be found.`); } NativeAudioAPIModule.install(); } class AudioManager { constructor() { this.audioEventEmitter = new AudioEventEmitter(global.AudioEventEmitter); } getDevicePreferredSampleRate() { return NativeAudioAPIModule.getDevicePreferredSampleRate(); } setAudioSessionActivity(enabled) { return NativeAudioAPIModule.setAudioSessionActivity(enabled); } setAudioSessionOptions(options) { NativeAudioAPIModule.setAudioSessionOptions(options.iosCategory ?? '', options.iosMode ?? '', options.iosOptions ?? [], options.iosAllowHaptics ?? false); } setLockScreenInfo(info) { NativeAudioAPIModule.setLockScreenInfo(info); } resetLockScreenInfo() { NativeAudioAPIModule.resetLockScreenInfo(); } observeAudioInterruptions(enabled) { NativeAudioAPIModule.observeAudioInterruptions(enabled); } observeVolumeChanges(enabled) { NativeAudioAPIModule.observeVolumeChanges(enabled); } enableRemoteCommand(name, enabled) { NativeAudioAPIModule.enableRemoteCommand(name, enabled); } addSystemEventListener(name, callback) { return this.audioEventEmitter.addAudioEventListener(name, callback); } async requestRecordingPermissions() { return NativeAudioAPIModule.requestRecordingPermissions(); } async checkRecordingPermissions() { return NativeAudioAPIModule.checkRecordingPermissions(); } } export default new AudioManager(); //# sourceMappingURL=AudioManager.js.map