我已经创建了一个新的音频元素,并且可以成功加载,播放,暂停,静音等。但是,我注意到当我执行play()时,一些浏览器(FF,Opera)将始终触发canplaythrough事件。 Chrome也存在此问题。但Safari的行为符合预期......在readyState更改为HAVE_ENOUGH_DATA后,事件仅触发一次。
我也注意到没有浏览器会让我删除此活动。
不断触发canplaythrough很烦人,因为每次播放音频文件时,我都不一定要执行附加到canplaythrough事件的处理程序。每当canplaythrough被多次触发时,我在Chrome上也遇到了一些奇怪的播放错误。
任何人都可以了解canplaythrough正在发生的事情,以及为什么它在最初被解雇后无法删除。
感谢。
答案 0 :(得分:3)
我已经能够删除Chrome中的canplaythrough事件(以及Safari,如果我没记错的话。)
以下示例中的代码似乎对我有用:
// add event
audioElem.addEventListener("canplaythrough", displayHome, false);
// later remove event before triggering play
audioElem.removeEventListener("canplaythrough", displayHome, false);
和我一样,当我没有在Chrome中删除该活动时,我发现了一些时髦的播放问题。