【问题标题】:canplaythrough event and HTM5 audio: can anyone remove this event?canplaythrough 事件和 HTM5 音频:任何人都可以删除此事件吗?
【发布时间】:2011-05-02 13:46:18
【问题描述】:

我创建了一个新的音频元素,可以成功加载、播放、暂停、静音等。但是,我注意到一些浏览器(FF、Opera)在我执行 play() 时总是会触发 canplaythrough 事件。 Chrome 也有这方面的问题。但是 Safari 的行为与预期一样……在 readyState 更改为 HAVE_ENOUGH_DATA 后,该事件仅被触发一次。

我还注意到没有浏览器允许我删除此事件。

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

谁能解释一下 canplaythrough 发生了什么以及为什么它在最初被触发后无法删除。

谢谢。

【问题讨论】:

    标签: javascript html audio


    【解决方案1】:

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

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

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

    和你一样,当我没有在 Chrome 中删除事件时,我注意到了一些奇怪的播放问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多