UNPKG

@vueuse/sound

Version:

🔊 A Vue composable for playing sound effects

38 lines (34 loc) • 1.2 kB
import { HowlOptions, Howl } from 'howler'; import { Ref, ComputedRef } from 'vue-demi'; interface HowlStatic { new (properties: HowlOptions): Howl; } type MaybeRef<T> = T | Ref<T> | ComputedRef<T>; interface SpriteMap { [key: string]: [number, number]; } type ComposableOptions = { volume?: MaybeRef<number>; playbackRate?: MaybeRef<number>; interrupt?: boolean; soundEnabled?: boolean; autoplay?: boolean; sprite?: SpriteMap; onload?: () => void; } & Omit<HowlOptions, 'src'>; interface PlayOptions { id?: number; forceSoundEnabled?: boolean; playbackRate?: number; } type PlayFunction = (options?: PlayOptions) => void; interface ReturnedValue { play: PlayFunction; sound: Ref<Howl | null>; stop: (id?: number) => void; pause: (id?: number) => void; isPlaying: Ref<boolean>; duration: Ref<number | null>; } declare function useSound(url: MaybeRef<string>, { volume, playbackRate, soundEnabled, interrupt, autoplay, onload, ...delegated }?: ComposableOptions): ReturnedValue; export { type ComposableOptions, type HowlStatic, type MaybeRef, type PlayFunction, type PlayOptions, type ReturnedValue, type SpriteMap, useSound };