UNPKG

silence-aware-recorder

Version:

Audio control with silence detection.

48 lines (46 loc) 1.7 kB
type OnVolumeChange = (volume: number) => void; type OnDataAvailable = (data: Blob) => void | undefined; interface SilenceAwareRecorderOptions { deviceId?: string; minDecibels?: number; onDataAvailable?: OnDataAvailable; onVolumeChange?: OnVolumeChange; setDeviceId?: (deviceId: string) => void; silenceDetectionEnabled?: boolean; silenceDuration?: number; silentThreshold?: number; stopRecorderOnSilence?: boolean; timeSlice?: number; } declare class SilenceAwareRecorder { private readonly silenceDetectionEnabled; private readonly timeSlice; private audioContext; private mediaStreamSource; private analyser; private mediaRecorder; private silenceTimeout; private readonly silenceThreshold; private readonly silenceDuration; private readonly minDecibels; private readonly onVolumeChange?; private readonly onDataAvailable?; private isSilence; private hasSoundStarted; deviceId: string | null; isRecording: boolean; private readonly stopRecorderOnSilence; private animationFrameId; constructor({ onVolumeChange, onDataAvailable, silenceDuration, silentThreshold, minDecibels, deviceId, timeSlice, silenceDetectionEnabled, stopRecorderOnSilence, }: SilenceAwareRecorderOptions); startRecording(): Promise<void>; private getAudioStream; private setupAudioContext; private setupMediaRecorder; getAvailableDevices(): Promise<MediaDeviceInfo[]>; setDevice(deviceId: string): void; stopRecording(): void; private cleanUp; private checkForSilence; private computeVolume; } export { SilenceAwareRecorder as S, type SilenceAwareRecorderOptions as a };