javascript audio 对象常用事件

最近在做一个媒体播放器,集成了图片+音频播放模式和视频播放模式,研究了下 js audio 对象的事件,整理了相关事件及触发顺序。

音频的初始加载事件顺序:依次触发 onloadstart、onprogress、onsuspend,然后 onprogress、onsuspend 交替触发,直到触发 ondurationchange、onloadedmetadata、onloadeddata、oncanplay、oncanplaythrough,加载完成。

点击播放后触发事件顺序:
onplay、onplaying、ontimeupdate,播放控件开始缓冲部分音频文件onprogress,缓冲足够多的音频片段后触发onsuspend,当缓冲即将播放完后又触发onprogress、onsuspend,依次循环直到音频全部缓冲完毕。

音频播放完毕后触发:
onpause、onended

暂停播放控件时触发:
onpause

从暂停恢复播放后触发:
onplay、onplaying