@oiij/use
Version:
Som Composable Functions for Vue 3
66 lines (65 loc) • 2.57 kB
text/typescript
import * as vue0 from "vue";
import * as _vueuse_core0 from "@vueuse/core";
//#region src/composables/use-audio-context.d.ts
type AudioContextFadeOptions = {
fade?: boolean;
duration?: number;
};
type AudioContextOptions = {
volume?: number;
playbackRate?: number;
fade?: AudioContextFadeOptions | boolean;
};
declare function useAudioContext(options?: AudioContextOptions): {
eqFrequencies: number[];
audioContext: AudioContext;
audioElement: HTMLAudioElement;
sourceNode: MediaElementAudioSourceNode;
gainNode: GainNode;
analyserNode: AnalyserNode;
filters: BiquadFilterNode[];
filterNode: BiquadFilterNode;
volume: vue0.Ref<number, number>;
setVolume: (volume: number) => void;
muted: vue0.Ref<boolean, boolean>;
mute: (mute?: boolean) => void;
playbackRate: vue0.Ref<number, number>;
setPlaybackRate: (playbackRate: number) => void;
playing: Readonly<vue0.Ref<boolean, boolean>>;
paused: vue0.Ref<boolean, boolean>;
ended: Readonly<vue0.Ref<boolean, boolean>>;
currentTime: vue0.Ref<number, number>;
currentTimeText: vue0.ComputedRef<string>;
setCurrentTime: (time: number) => void;
duration: vue0.Ref<number, number>;
durationText: vue0.ComputedRef<string>;
progress: vue0.Ref<number, number>;
setProgress: (progress: number) => void;
cachedDuration: vue0.Ref<number, number>;
cachedDurationText: vue0.ComputedRef<string>;
cachedProgress: vue0.Ref<number, number>;
url: vue0.Ref<string | undefined, string | undefined>;
play: (url: string) => Promise<void>;
pause: (options?: AudioContextFadeOptions) => void;
resume: (options?: AudioContextFadeOptions) => void;
stop: () => void;
toggle: () => void;
getFrequencyData: () => Uint8Array<ArrayBuffer>;
setEQFrequency: (index: number, value: number) => void;
getEQFrequency: (index: number) => number;
getEQFrequencies: () => {
frequency: number;
gain: number;
}[];
onVolumeUpdate: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onMuted: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onRateUpdate: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onTimeUpdate: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onDurationUpdate: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onPlaying: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onPaused: _vueuse_core0.EventHookOn<HTMLAudioElement>;
onEnded: _vueuse_core0.EventHookOn<HTMLAudioElement>;
};
type UseAudioContextReturns = ReturnType<typeof useAudioContext>;
//#endregion
export { AudioContextFadeOptions, AudioContextOptions, UseAudioContextReturns, useAudioContext };