@mirawision/reactive-hooks
Version:
A comprehensive collection of 50+ React hooks for state management, UI interactions, device APIs, async operations, drag & drop, audio/speech, and more. Full TypeScript support with SSR safety.
39 lines (38 loc) • 1.1 kB
TypeScript
export interface AudioOptions {
autoPlay?: boolean;
}
export interface AudioState {
audioRef: React.RefObject<HTMLAudioElement>;
playing: boolean;
currentTime: number;
duration: number;
volume: number;
muted: boolean;
play: () => Promise<void>;
pause: () => void;
stop: () => void;
seek: (time: number) => void;
setVolume: (volume: number) => void;
setMuted: (muted: boolean) => void;
load: (src: string) => void;
}
/**
* A hook that provides full control over HTML5 audio playback.
* @param src Initial audio source URL
* @param opts Configuration options
* @returns Object containing audio state and control functions
*
* @example
* const { audioRef, playing, play, pause, currentTime, duration } = useAudio('/audio.mp3');
*
* return (
* <div>
* <audio ref={audioRef} />
* <button onClick={playing ? pause : play}>
* {playing ? 'Pause' : 'Play'}
* </button>
* <span>{currentTime}s / {duration}s</span>
* </div>
* );
*/
export declare function useAudio(src?: string, opts?: AudioOptions): AudioState;