UNPKG

react-audio-recorder-hook

Version:

A powerful TypeScript-based React hook that provides complete audio recording capabilities with pause/resume functionality, recording management, and audio processing

54 lines 2.18 kB
import { type AudioEffectOptions } from './effects/audioEffects'; export interface AudioRecorderOptions { /** Optional audio constraints to pass to getUserMedia */ audioConstraints?: MediaTrackConstraints; /** Recording data chunk interval in milliseconds */ chunkInterval?: number; /** Custom MIME type to use if supported */ preferredMimeType?: string; /** Called when recording is unsupported on the browser */ onNotSupported?: () => void; /** Optional bitrate for audio recording quality */ audioBitsPerSecond?: number; /** Volume metering refresh rate in ms (default: 100) */ volumeMeterRefreshRate?: number; /** Audio effect to apply during recording (default: none) */ audioEffect?: AudioEffectOptions; } export interface UseAudioRecorderReturn { startRecording: () => Promise<void>; stopRecording: () => Promise<void>; cancelRecording: () => void; pauseRecording: () => void; resumeRecording: () => Promise<void>; saveRecording: () => Promise<{ blob: Blob; url: string; } | null>; playRecording: () => Promise<string | null>; /** Apply a new audio effect while recording */ applyEffect: (effect: AudioEffectOptions) => void; isRecording: boolean; isPaused: boolean; recordingDuration: number; mediaStream: MediaStream | null; /** Current audio volume level (0-1) */ currentVolume: number; /** Error encountered during recording (if any) */ error: Error | null; /** Whether permission to record has been denied */ isPermissionDenied: boolean; /** Information about browser compatibility */ browserCompatibility: { isSupported: boolean; mediaRecorderSupported: boolean; getUserMediaSupported: boolean; audioContextSupported: boolean; isMobileBrowser: boolean; }; /** Current audio effect being applied */ currentEffect: AudioEffectOptions; } export default function useAudioRecorder(options?: AudioRecorderOptions): UseAudioRecorderReturn; export { AudioEffectType, type AudioEffectOptions } from './effects/audioEffects'; //# sourceMappingURL=index.d.ts.map