最近在做一个媒体播放器,集成了图片+音频播放模式和视频播放模式,研究了下 js audio 对象的事件,整理了相关事件及触发顺序。
音频的初始加载事件顺序:依次触发 onloadstart
、onprogress
、onsuspend
,然后 onprogress
、onsuspend
交替触发,直到触发 ondurationchange
、onloadedmetadata
、onloadeddata
、oncanplay
、oncanplaythrough
,加载完成。
点击播放后触发事件顺序:onplay
、onplaying
、ontimeupdate
,播放控件开始缓冲部分音频文件onprogress
,缓冲足够多的音频片段后触发onsuspend
,当缓冲即将播放完后又触发onprogress
、onsuspend
,依次循环直到音频全部缓冲完毕。
音频播放完毕后触发:onpause
、onended
暂停播放控件时触发:onpause
从暂停恢复播放后触发:onplay
、onplaying