UNPKG

@threlte/extras

Version:

Utilities, abstractions and plugins for your Threlte apps

28 lines (27 loc) 1.23 kB
import { type Audio, type PositionalAudio } from 'three'; type AudioSource = string | AudioBuffer | HTMLMediaElement | AudioBufferSourceNode | MediaStream; export interface AudioProps { src: AudioSource; autoplay?: boolean; loop?: boolean; volume?: number; playbackRate?: number; detune?: number; onload?: (buffer: AudioBuffer | null) => void; onerror?: (event: ErrorEvent) => void; onprogress?: (event: ProgressEvent) => void; } /** * This hook handles basic audio functionality. * It’s used by the <Audio> and <PositionalAudio> components. */ export declare const useAudio: <T extends Audio<GainNode> | PositionalAudio>(audio: () => T | undefined, src: () => AudioSource, autoplay: () => boolean, loop: () => boolean, volume: () => number, playbackRate: () => number, detune: () => number, props: () => { onload?: (buffer: AudioBuffer | null) => void; onerror?: (event: ErrorEvent) => void; onprogress?: (event: ProgressEvent) => void; }) => { play: (delay?: number) => Promise<PositionalAudio | Audio<GainNode> | undefined>; pause: () => PositionalAudio | Audio<GainNode> | undefined; stop: () => PositionalAudio | Audio<GainNode> | undefined; }; export {};