我一直有一个非常奇怪且看似不太可能的问题。我创建了一个基于SimpleHTTPServer的自定义python服务器,它要求我设置所有自己的头文件。我开始使用它来提供.wav文件,当他们在chrome中使用HTML5标签时,他们将不重播(通过设置currentTime = 0并再次调用play())。但是,如果我将它们托管在标准的Apache服务器上,它们就可以重播。我打开开发工具,慢慢地添加和删除标题到我的python服务器,直到他们开始正常播放。事实证明,缺少的元素是“Accept-Ranges:bytes”标题。没有它,wav文件将不会重播,并且它一切正常。有谁知道为什么会这样?
答案 0 :(得分:2)
我发现了同样的事情 - 浏览器在通过Accept-Ranges
标记播放音频时需要<audio>
标题。就我而言,这种情况发生在MP3上(我没有尝试使用WAV)。
我不知道为什么会这样,但如果你想避免它,请使用新的Web Audio API。根据我的经验,如果您使用Web Audio API,Chrome / Safari / Firefox将在没有Accept-Ranges
标题的情况下播放(和重放)音频。这是a good starter article。