我最近在Firefox或Chrome中打开音频文件时发现了一件事情(使我感到惊讶)。如果我不指定HTTP响应头“Accept-Ranges: bytes”,Firefox将无法在播放结束前确定ogg文件的长度(以秒为单位)。 Chrome将发现ogg文件的长度(以秒为单位),但当其达到末尾并崩溃时,音频播放器似乎会崩溃,并拒绝在崩溃后重新播放文件。未测试其他浏览器。
有效的Http响应头:
有效的Http响应头:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/ogg
Content-Length: 245646
失败的Http响应头:
HTTP/1.1 200 OK
Content-Type: application/ogg
Content-Length: 245646
这对我来说很奇怪,因为我没有使用任何部分内容范围。我的服务器实现甚至不支持它们(所以我认为我的服务器在说“Accept-Ranges:bytes”时可能是在撒谎)。我当然不明白为什么播放器需要这个头文件。这两个浏览器都有bug吗?当我没有设置Accept-Ranges头文件时,这些bug就会暴露出来吗?这对我来说似乎不太可能。有人能解释一下吗?
谢谢!