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
TypeScript
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