UNPKG

pcm-processor

Version:

Processes raw PCM data from mobile device microphones/live recordings

68 lines 2.03 kB
import PcmProcessorModule from "./PcmProcessorModule"; export function addListener(listener) { PcmProcessorModule.removeListener(); return PcmProcessorModule.addListener("onChange", listener); } export function removeListener(subscription) { if (subscription) { subscription.remove(); PcmProcessorModule.removeListener(); } } export async function startCapturing(config, onData, onError) { try { const defaultConfig = { sampleRate: 44100, channels: 1, shouldRecordAudio: false, fileName: `recording_${Date.now()}`, fileExtension: "wav", }; const mergedConfig = { ...defaultConfig, ...config }; const subscription = addListener((event) => { if (event.error && onError) { onError(event.error); } else if (event.data && onData) { onData(event); } }); await PcmProcessorModule.startCapturing(mergedConfig); return subscription; } catch (error) { const errorMessage = error instanceof Error ? error.message : "Unknown error occurred"; if (onError) { onError(errorMessage); } throw error; } } export async function stopCapturing() { try { return await PcmProcessorModule.stopCapturing(); } catch (error) { const errorMessage = error instanceof Error ? error.message : "Failed to stop recording"; console.error("Error stopping PCM capturing:", error); return { error: errorMessage, }; } } export function isRecordingError(event) { return "error" in event; } export function isPcmData(event) { return "data" in event && event.data !== undefined; } export { default as PcmProcessor } from "./PcmProcessorModule"; export default { startCapturing, stopCapturing, addListener, removeListener, isRecordingError, isPcmData, }; //# sourceMappingURL=index.js.map