【问题标题】:Incorrect headers stop chrome from looping HTML5 audio不正确的标题会阻止 chrome 循环播放 HTML5 音频
【发布时间】:2014-04-07 19:55:44
【问题描述】:

我遇到了一个非常奇怪且看似不太可能的问题。我基于 SimpleHTTPServer 制作了一个自定义 python 服务器,这需要我设置我自己的所有标头。我开始使用它来提供 .wav 文件,虽然它们会在 chrome 中播放 HTML5 标签,但它们会重播(通过设置 currentTime=0 并再次调用 play())。但是,如果我将它们托管在标准 Apache 服务器上,它们会很好地重播。我打开开发工具并缓慢地向我的 python 服务器添加和删除标头,直到它们开始正常播放。事实证明,缺少的元素是“Accept-Ranges: bytes”标头。没有它,wav 文件将不会重播,有了它一切正常。有谁知道为什么会这样?

【问题讨论】:

    标签: javascript html google-chrome audio webserver


    【解决方案1】:

    我发现了同样的事情——浏览器在通过<audio> 标签播放音频时需要Accept-Ranges 标头。就我而言,这发生在 MP3 上(我没有尝试使用 WAV)。

    我不知道为什么会发生这种情况,但如果您想避免这种情况,请使用新的 Web Audio API。根据我的经验,如果您使用 Web Audio API,Chrome/Safari/Firefox 将在没有 Accept-Ranges 标头的情况下正常播放(和重播)音频。这里是a good starter article

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2013-03-03
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      相关资源
      最近更新 更多