import type { Engine } from '@galacean/effects'; import { spec } from '@galacean/effects'; interface AudioSourceInfo { source?: AudioBufferSourceNode; audioContext?: AudioContext; gainNode?: GainNode; } export interface AudioPlayerOptions { endBehavior: spec.EndBehavior; duration: number; } export declare class AudioPlayer { private engine; audio?: HTMLAudioElement; audioSourceInfo: AudioSourceInfo; private pendingOffset; private isSupportAudioContext; private options; private destroyed; private started; private initialized; private currentVolume; constructor(engine: Engine, audio?: AudioBuffer | HTMLAudioElement); /** * 设置音频资源 * @param audio - 音频资源 */ setAudioSource(audio: AudioBuffer | HTMLAudioElement): void; getCurrentTime(): number; /** * 设置音频当前时间 * WebAudio下设置 this.pendingOffset,后面play时直接从该事件play * HTMLAudioElement下直接设置时间 */ setCurrentTime(time: number): void; /** * 播放音频 */ play(): void; pause(): void; setVolume(volume: number): void; setPlaybackRate(rate: number): void; setLoop(loop: boolean): void; setOptions(options: AudioPlayerOptions): void; setMuted(muted: boolean): void; dispose(): void; } export {};