canplaythrough事件和HTM5音频:任何人都可以删除此事件吗?

时间:2011-03-05 15:30:11

标签: javascript html5 audio

我已经创建了一个新的音频元素,并且可以成功加载,播放,暂停,静音等。但是,我注意到当我执行play()时,一些浏览器(FF,Opera)将始终触发canplaythrough事件。 Chrome也存在此问题。但Safari的行为符合预期......在readyState更改为HAVE_ENOUGH_DATA后,事件仅触发一次。

我也注意到没有浏览器会让我删除此活动。

不断触发canplaythrough很烦人,因为每次播放音频文件时,我都不一定要执行附加到canplaythrough事件的处理程序。每当canplaythrough被多次触发时,我在Chrome上也遇到了一些奇怪的播放错误。

任何人都可以了解canplaythrough正在发生的事情,以及为什么它在最初被解雇后无法删除。

感谢。

1 个答案:

答案 0 :(得分:3)

我已经能够删除Chrome中的canplaythrough事件(以及Safari,如果我没记错的话。)

以下示例中的代码似乎对我有用:

// add event
audioElem.addEventListener("canplaythrough", displayHome, false);

// later remove event before triggering play
audioElem.removeEventListener("canplaythrough", displayHome, false);

和我一样,当我没有在Chrome中删除该活动时,我发现了一些时髦的播放问题。