javascript - 不正确的 header 会阻止 Chrome 循环播放 HTML5 音频

标签 javascript html google-chrome audio webserver

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

最佳答案

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

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

关于javascript - 不正确的 header 会阻止 Chrome 循环播放 HTML5 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22203164/

相关文章:

html - 如何摆脱 Internet Explorer 中的这个空白?

html - 如何使用scrapy访问下表的所有特定数据?

javascript - 数据加入d3;我一定没有正确理解选择和/或数据键功能

javascript - 仅显示重叠部分

html - 汉堡菜单 : providing round border around it

ios - iPad Safari 和 Chrome 上的 Facebook 嵌入式帖子问题

javascript - 你可以在 Chrome 8 中写入文件吗?

javascript - 一个html中有很多div

javascript - 如何验证 v-datatable 中的 v-edit-dialog

javascript - ng-click 即使在调用 $compile 之后也不会触发