import * as _vueuse_core0 from "@vueuse/core"; import * as vue from "vue"; //#region src/use-audio-context-buffer.d.ts /** * 淡入淡出选项 */ type AudioContextBufferFadeOptions = { /** * 是否启用淡入淡出 * @default true */ fade?: boolean; /** * 淡入淡出持续时间(秒) * @default 1 */ duration?: number; }; /** * 音频上下文缓冲区配置选项 */ type AudioContextBufferOptions = { /** * 是否启用音频分析器 */ analyser?: boolean; /** * 默认音量(0-100) * @default 80 */ volume?: number; /** * 默认播放速率 * @default 1 */ playbackRate?: number; /** * 淡入淡出选项,可设置为布尔值或对象 */ fadeOptions?: AudioContextBufferFadeOptions | boolean; }; /** * 音频上下文缓冲区管理 * * 用于管理音频缓冲区的加载、播放、暂停、停止等操作,支持音量控制、播放速率调整、均衡器等功能 * * @param options 配置选项 * @returns 返回的状态和方法 * * @example * ```ts * const { * volume, * playing, * paused, * currentTime, * duration, * playBuffer, * play, * pause, * resume, * stop, * toggle * } = useAudioContextBuffer({ * analyser: true, * volume: 70, * fadeOptions: { fade: true, duration: 0.5 } * }) * * async function handlePlay() { * const response = await fetch('audio.mp3') * const arrayBuffer = await response.arrayBuffer() * await playBuffer(new Uint8Array(arrayBuffer)) * } * ``` */ declare function useAudioContextBuffer(options?: AudioContextBufferOptions): { eqFrequencies: number[]; audioContext: AudioContext; audioBuffer: vue.ShallowRef; bufferSource: vue.ShallowRef; gainNode: GainNode; analyserNode: AnalyserNode; filters: BiquadFilterNode[]; filterNode: BiquadFilterNode; status: vue.Ref; volume: vue.Ref; setVolume: (volume: number) => void; playbackRate: vue.Ref; setPlaybackRate: (playbackRate: number) => void; detune: vue.Ref; playing: vue.Ref; paused: vue.Ref; ended: vue.Ref; startFlag: vue.Ref; pauseFlag: vue.Ref; currentTimeRaw: vue.Ref; currentTime: vue.ComputedRef; currentTimeText: vue.ComputedRef; setCurrentTime: (time: number) => void; durationRaw: vue.Ref; duration: vue.ComputedRef; durationText: vue.ComputedRef; progressRaw: vue.Ref; progress: vue.ComputedRef; setProgress: (val: number) => void; cachedDuration: vue.Ref; cachedDurationText: vue.ComputedRef; cachedProgress: vue.Ref; playBuffer: (arrayBuffer: Uint8Array) => Promise; play: () => void; pause: (options?: AudioContextBufferFadeOptions) => void; resume: (options?: AudioContextBufferFadeOptions) => void; stop: () => void; toggle: () => void; getFrequencyData: () => Uint8Array; setEQFrequency: (index: number, value: number) => void; getEQFrequency: (index: number) => number; getEQFrequencies: () => { frequency: number; gain: number; }[]; destroy: () => void; onVolumeUpdate: _vueuse_core0.EventHookOn; onRateUpdate: _vueuse_core0.EventHookOn; onTimeUpdate: _vueuse_core0.EventHookOn; onDurationUpdate: _vueuse_core0.EventHookOn; onPlaying: _vueuse_core0.EventHookOn; onPaused: _vueuse_core0.EventHookOn; onEnded: _vueuse_core0.EventHookOn; onByteTimeDomainData: _vueuse_core0.EventHookOn>; }; /** * useAudioContextBuffer 函数的返回类型 */ type UseAudioContextBufferReturns = ReturnType; //#endregion export { AudioContextBufferFadeOptions, AudioContextBufferOptions, UseAudioContextBufferReturns, useAudioContextBuffer };