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