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

42 lines (34 loc) 1.13 kB
import { IAudioRecorder } from '../interfaces'; import { AudioRecorderOptions } from '../types'; import AudioBuffer from './AudioBuffer'; import { OnAudioReadyEventType } from '../events/types'; import { AudioEventEmitter } from '../events'; export default class AudioRecorder { protected readonly recorder: IAudioRecorder; private readonly audioEventEmitter = new AudioEventEmitter( global.AudioEventEmitter ); constructor(options: AudioRecorderOptions) { this.recorder = global.createAudioRecorder(options); } public start(): void { this.recorder.start(); } public stop(): void { this.recorder.stop(); } public onAudioReady(callback: (event: OnAudioReadyEventType) => void): void { const onAudioReadyCallback = (event: OnAudioReadyEventType) => { callback({ buffer: new AudioBuffer(event.buffer), numFrames: event.numFrames, when: event.when, }); }; const subscription = this.audioEventEmitter.addAudioEventListener( 'audioReady', onAudioReadyCallback ); this.recorder.onAudioReady = subscription.subscriptionId; } }