【问题标题】:How to determine when buffering is finished on a HTML5 Audio element如何确定 HTML5 音频元素的缓冲何时完成
【发布时间】:2011-01-14 15:30:13
【问题描述】:

我正在尝试确定 HTML5 音频元素的缓冲何时完成,但到目前为止我找不到任何 loadComplete 或类似事件。我试过使用进度事件,但是下载完成后它不会触发 - 只有在下载时才会触发,因此我不能用它来检查。我也尝试过标准的load 事件,但似乎根本没有触发。

还有哪些其他事件可以让我检查缓冲是否完成,或者我是否必须使用计时器来继续检查 a.buffered.end(0) == a.duration 是否完成?

谢谢,

【问题讨论】:

  • 我不认为有这样的事件,至少目前是这样。缓冲完成后你想做什么?也许你可以用不同的方式解决问题。
  • 不是真的,我正在尝试用 Javascript 实现一个基于 Flash 的程序,并尽可能多地保留 Flash 版本。在我为 Chrome 开发时,音频数据 API 并不是一个真正的选择。实际上,应该有一个 progressComplete 或其他事件 - 但这一定是规范编写者的疏忽。
  • 偶然发现这个正在寻找其他东西。这叫canplaythrough。 w3schools.com/tags/ref_av_dom.asp

标签: javascript html google-chrome buffering html5-audio


【解决方案1】:

Audio Data API 提供了一个名为 MozAudioAvailable 的事件,它可以满足您的需要。这仅在 Firefox 4 中,但其他现代浏览器可能会在未来实现它。

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多