41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { MaybeRef, Ref } from "vue";
|
|
|
|
//#region src/client/composables/audio.d.ts
|
|
interface BufferedRange {
|
|
start: number;
|
|
end: number;
|
|
}
|
|
interface AudioPlayerOptions {
|
|
type?: MaybeRef<string>;
|
|
autoplay?: boolean;
|
|
mutex?: boolean;
|
|
onload?: HTMLAudioElement["onload"];
|
|
onerror?: HTMLAudioElement["onerror"];
|
|
onpause?: HTMLAudioElement["onpause"];
|
|
onplay?: HTMLAudioElement["onplay"];
|
|
onplaying?: HTMLAudioElement["onplaying"];
|
|
onseeked?: HTMLAudioElement["onseeked"];
|
|
onvolume?: (volume: number) => void;
|
|
onend?: HTMLAudioElement["onended"];
|
|
onprogress?: (current: number, total: number) => void;
|
|
oncanplay?: HTMLAudioElement["oncanplay"];
|
|
oncanplaythrough?: HTMLAudioElement["oncanplaythrough"];
|
|
ontimeupdate?: (currentTime: number) => void;
|
|
onwaiting?: HTMLAudioElement["onwaiting"];
|
|
}
|
|
interface UseAudioPlayerResult {
|
|
player: HTMLAudioElement | null;
|
|
isSupported: Ref<boolean>;
|
|
loaded: Ref<boolean>;
|
|
paused: Ref<boolean>;
|
|
currentTime: Ref<number>;
|
|
duration: Ref<number>;
|
|
play: () => void;
|
|
pause: () => void;
|
|
seek: (time: number) => void;
|
|
setVolume: (volume: number) => void;
|
|
destroy: () => void;
|
|
}
|
|
declare function useAudioPlayer(source: MaybeRef<string>, options?: AudioPlayerOptions): UseAudioPlayerResult;
|
|
//#endregion
|
|
export { AudioPlayerOptions, BufferedRange, useAudioPlayer }; |