UNPKG

rooks

Version:

Essential React custom hooks ⚓ to super charge your components!

62 lines 1.92 kB
/** * useAudio * @description Enhanced audio hook with comprehensive controls and state management * @see {@link https://rooks.vercel.app/docs/hooks/useAudio} */ import { RefCallback } from "react"; type UseAudioOptions = { autoPlay?: boolean; isMuted?: boolean; volume?: number; playbackRate?: number; loop?: boolean; preload?: "none" | "metadata" | "auto"; }; type UseAudioCallbacks = { onPlay?: () => void; onPause?: () => void; onEnded?: () => void; onMute?: () => void; onUnmute?: () => void; onLoadedMetadata?: () => void; onTimeUpdate?: (currentTime: number) => void; onDurationChange?: (duration: number) => void; onVolumeChange?: (volume: number) => void; onRateChange?: (rate: number) => void; onError?: (error: string) => void; onLoadStart?: () => void; onCanPlay?: () => void; onWaiting?: () => void; }; type AudioState = { isPlaying: boolean; isMuted: boolean; volume: number; currentTime: number; duration: number; playbackRate: number; isLoading: boolean; isBuffering: boolean; loop: boolean; hasError: boolean; error?: string; }; type AudioControls = { play: () => void; pause: () => void; togglePlay: () => void; mute: () => void; unmute: () => void; toggleMute: () => void; setVolume: (volume: number) => void; setCurrentTime: (time: number) => void; setPlaybackRate: (rate: number) => void; seek: (seconds: number) => void; fastForward: (seconds: number) => void; rewind: (seconds: number) => void; setLoop: (loop: boolean) => void; }; declare function useAudio(options?: UseAudioOptions, callbacks?: UseAudioCallbacks): [RefCallback<HTMLAudioElement>, AudioState, AudioControls]; export { useAudio }; export type { UseAudioOptions, UseAudioCallbacks, AudioState, AudioControls }; //# sourceMappingURL=useAudio.d.ts.map