UNPKG

react-voice-recorder-pro

Version:

A powerful React hook-based voice recording library with real-time audio visualization and comprehensive browser support

74 lines 2.69 kB
export interface VoiceRecorderOptions { /** MIME type of recorded file (default: 'audio/webm') */ mimeType?: string; /** Smoothing coefficient for audio level measurement (default: 0.8) */ smoothing?: number; /** FFT size (default: 2048) */ fftSize?: number; /** Whether to automatically enable microphone (default: false) */ autoEnableMicrophone?: boolean; /** Whether to automatically play after recording (default: false) */ autoPlayAfterRecording?: boolean; } export interface VoiceRecorderState { /** Whether currently recording */ isRecording: boolean; /** Whether recording is paused */ isPaused: boolean; /** Whether microphone is enabled */ isMicrophoneEnabled: boolean; /** Whether audio is playing */ isPlaying: boolean; /** Microphone permission state */ permission: PermissionState | 'prompt' | 'unknown'; /** Current audio level (0-1) */ audioLevel: number; /** Recording elapsed time (seconds) */ elapsedTime: number; /** Formatted recording time (HH:MM:SS) */ formattedTime: string; /** Recorded audio Blob */ recordedBlob: Blob | null; /** Audio URL (for playback) */ audioUrl: string | null; /** Error message */ error: string | null; } export interface VoiceRecorderControls { /** Start recording */ startRecording: () => void; /** Pause recording */ pauseRecording: () => void; /** Resume recording */ resumeRecording: () => void; /** Stop recording and return Blob */ stopRecording: () => Promise<Blob | null>; /** Enable microphone */ enableMicrophone: () => Promise<void>; /** Disable microphone */ disableMicrophone: () => void; /** Play/pause recorded audio */ playPause: () => void; /** Reset recording state */ reset: () => void; /** Resume audio context (for iOS/Safari) */ resumeAudioContext: () => Promise<void>; } export interface UseVoiceRecorderReturn extends VoiceRecorderState, VoiceRecorderControls { /** HTML Audio element reference */ audioRef: React.RefObject<HTMLAudioElement | null>; } /** * All-in-one custom hook for voice recording * * Key features: * - Microphone permission management and stream control * - Real-time audio level measurement and visualization * - Recording start/stop/pause/resume functionality * - Recording time tracking and formatting * - Recorded audio playback functionality * - Error handling and state management * - iOS/Safari compatibility support */ export declare function useVoiceRecorder(options?: VoiceRecorderOptions): UseVoiceRecorderReturn; //# sourceMappingURL=useVoiceRecorder.d.ts.map