useAudio
Hook that manages audio playback with sprite support
browser
low
test coverage
Last changed: 5 months ago
TIP
This hook uses Audio browser api to provide enhanced functionality. Make sure to check for compatibility with different browsers when using this api
Installation
Library
CLI
Manual
typescript
import { useAudio } from '@siberiacancode/reactuse';Usage
typescript
const audio = useAudio("/path/to/sound.mp3");Demo
Api
Parameters
| Name | Type | Default | Note |
|---|---|---|---|
| url | string | - | The URL of the audio file to play |
| options? | UseAudioOptions | - | Audio configuration options |
| options.volume? | number | 1 | Initial volume level (0 to 1) |
| options.playbackRate? | number | 1 | Initial playback speed (0.5 to 2) |
| options.interrupt? | boolean | false | Whether to stop current playback when starting a new one |
| options.soundEnabled? | boolean | true | Whether audio playback is initially enabled |
| options.sprite? | SpriteMap | - | Map of named audio segments for sprite-based playback |
Returns
UseAudioReturn
Type declaration
typescript
export interface SpriteMap {
/** [start time in seconds, end time in seconds] */
[key: string]: [number, number];
}
export interface UseAudioOptions {
/** Whether audio playback is initially enabled */
immediately?: boolean;
/** Whether to stop current playback when starting a new one */
interrupt?: boolean;
/** Initial playback speed (0.5 to 2) */
playbackRate?: number;
/** Map of named audio segments for sprite-based playback */
sprite?: SpriteMap;
/** Initial volume level (0 to 1) */
volume?: number;
}
export interface UseAudioReturn {
/** Current playback speed (0.5 to 2) */
playbackRate: number;
/** Whether audio is currently playing */
playing: boolean;
/** Current volume level (0 to 1) */
volume: number;
/** Set playback speed (0.5 to 2) */
changePlaybackRate: (value: number) => void;
/** Pause audio playback at current position */
pause: () => void;
/** Start audio playback from the beginning or specified sprite segment */
play: (sprite?: string) => Promise<void>;
/** Set audio volume level (0 to 1) */
setVolume: (value: number) => void;
/** Stop audio playback and reset position to start */
stop: () => void;
}Source
Source • DemoContributors
D