import { InnerAudioErrorEvent } from "./InnerAudioErrorEvent"; /** * 音频上下文。 */ export interface InnerAudioContext { /** * 音频资源的地址,支持格式 m4a wav mp3 aac */ src: string; /** * 开始播放的时间 (s) */ startTime: number; /** * 是否自动开始播放 */ autoplay: boolean; /** * 是否循环播放 */ loop: boolean; /** * 是否遵循系统静音开关(仅在 iOS 上生效) */ obeyMuteSwitch: boolean; /** * 音量,范围 [0, 1] */ volume: number; /** * 播放速度,范围 [0.5, 2.0] */ playbackRate: number; /** * 当前音频的长度 (s)(只读) */ readonly duration?: number; /** * 当前音频的播放位置 (s)(只读) */ readonly currentTime?: number; /** * 是否暂停或停止(只读) */ readonly paused?: boolean; /** * 音频已缓冲的时间 (s)(只读) */ readonly buffered?: number; /** * 开始播放音频。 */ play(): void; /** * 暂停播放音频。 */ pause(): void; /** * 跳转到音频的指定位置。 * @param position 跳转位置 (s) */ seek(position: number): void; /** * 停止播放音频。 */ stop(): void; /** * 销毁当前音频上下文。 */ destroy(): void; /** * 监听音频可播放事件。 * @param callback 音频可播放事件的回调函数 */ onCanplay(callback: () => void): void; /** * 取消监听音频可播放事件。不传入 `callback` 则取消所有监听。 * @param callback 音频可播放事件的回调函数 */ offCanplay(callback?: () => void): void; /** * 监听音频播放完成事件。 * @param callback 音频播放完成事件的回调函数 */ onEnded(callback: () => void): void; /** * 取消监听音频播放完成事件。不传入 `callback` 则取消所有监听。 * @param callback 音频播放完成事件的回调函数 */ offEnded(callback?: () => void): void; /** * 监听音频播放出错事件。 * @param callback 音频播放出错事件的回调函数 */ onError(callback: (event: InnerAudioErrorEvent) => void): void; /** * 取消监听音频播放出错事件。不传入 `callback` 则取消所有监听。 * @param callback 音频播放出错事件的回调函数 */ offError(callback?: (event: InnerAudioErrorEvent) => void): void; /** * 监听音频开始播放事件。 * @param callback 音频开始播放事件的回调函数 */ onPlay(callback: () => void): void; /** * 取消监听音频开始播放事件。不传入 `callback` 则取消所有监听。 * @param callback 音频开始播放事件的回调函数 */ offPlay(callback?: () => void): void; /** * 监听音频暂停播放事件。 * @param callback 音频暂停播放事件的回调函数 */ onPause(callback: () => void): void; /** * 取消监听音频暂停播放事件。不传入 `callback` 则取消所有监听。 * @param callback 音频暂停播放事件的回调函数 */ offPause(callback?: () => void): void; /** * 监听音频已跳转到指定位置事件。 * @param callback 音频已跳转到指定位置事件的回调函数 */ onSeeked(callback: () => void): void; /** * 监听音频已跳转到指定位置事件。不传入 `callback` 则取消所有监听。 * @param callback 音频已跳转到指定位置事件的回调函数 */ offSeeked(callback?: () => void): void; /** * 监听音频开始跳转到指定位置事件。 * @param callback 音频开始跳转到指定位置事件的回调函数 */ onSeeking(callback: () => void): void; /** * 取消监听音频开始跳转到指定位置事件。不传入 `callback` 则取消所有监听。 * @param callback 音频开始跳转到指定位置事件的回调函数 */ offSeeking(callback?: () => void): void; /** * 监听音频停止播放事件。 * @param callback 音频停止播放事件的回调函数 */ onStop(callback: () => void): void; /** * 取消监听音频停止播放事件。不传入 `callback` 则取消所有监听。 * @param callback 音频停止播放事件的回调函数 */ offStop(callback?: () => void): void; /** * 监听音频播放进度更新事件。 * @param callback 音频播放进度更新事件的回调函数 */ onTimeUpdate(callback: () => void): void; /** * 取消监听音频播放进度更新事件。不传入 `callback` 则取消所有监听。 * @param callback 音频播放进度更新事件的回调函数 */ offTimeUpdate(callback?: () => void): void; /** * 监听音频加载中事件。 * @param callback 音频加载中事件的回调函数 */ onWaiting(callback: () => void): void; /** * 取消监听音频加载中事件。不传入 `callback` 则取消所有监听。 * @param callback 音频加载中事件的回调函数 */ offWaiting(callback?: () => void): void; }