UNPKG

@siteed/expo-audio-studio

Version:

Comprehensive audio processing library for React Native and Expo with recording, analysis, visualization, and streaming capabilities across iOS, Android, and web

59 lines 2.21 kB
import { LegacyEventEmitter } from 'expo-modules-core'; import { AudioAnalysis } from './AudioAnalysis/AudioAnalysis.types'; import { AudioRecording, AudioStreamStatus, BitDepth, ConsoleLike, RecordingConfig, StartRecordingResult } from './ExpoAudioStream.types'; import { WebRecorder } from './WebRecorder.web'; export interface EmitAudioEventProps { data: Float32Array; position: number; compression?: { data: Blob; size: number; totalSize: number; mimeType: string; format: string; bitrate: number; }; } export type EmitAudioEventFunction = (_: EmitAudioEventProps) => void; export type EmitAudioAnalysisFunction = (_: AudioAnalysis) => void; export interface ExpoAudioStreamWebProps { logger?: ConsoleLike; audioWorkletUrl: string; featuresExtratorUrl: string; maxBufferSize?: number; } export declare class ExpoAudioStreamWeb extends LegacyEventEmitter { customRecorder: WebRecorder | null; audioChunks: Float32Array[]; isRecording: boolean; isPaused: boolean; recordingStartTime: number; pausedTime: number; currentDurationMs: number; currentSize: number; currentInterval: number; currentIntervalAnalysis: number; lastEmittedSize: number; lastEmittedTime: number; lastEmittedCompressionSize: number; lastEmittedAnalysisTime: number; streamUuid: string | null; extension: 'webm' | 'wav'; recordingConfig?: RecordingConfig; bitDepth: BitDepth; audioWorkletUrl: string; featuresExtratorUrl: string; logger?: ConsoleLike; latestPosition: number; totalCompressedSize: number; private readonly maxBufferSize; constructor({ audioWorkletUrl, featuresExtratorUrl, logger, maxBufferSize, }: ExpoAudioStreamWebProps); getMediaStream(): Promise<MediaStream>; startRecording(recordingConfig?: RecordingConfig): Promise<StartRecordingResult>; emitAudioEvent({ data, position, compression }: EmitAudioEventProps): void; stopRecording(): Promise<AudioRecording>; pauseRecording(): Promise<void>; resumeRecording(): Promise<void>; status(): AudioStreamStatus; } //# sourceMappingURL=ExpoAudioStream.web.d.ts.map