1

我在使用音频标签和 Firefox 时遇到问题。我正在使用默认浏览器的控件。它适用于 Chrome 和 Opera,但在 Firefox 中进度条保持在右侧(就像它是记录的结尾一样) - 声音正常播放,但我无法通过文件查找。我做错什么了?

这是我将文件发送到浏览器的方式。

header('Content-Description: File Transfer');
header('Content-Type: audio/wav');
header('Content-Disposition: attachment; filename=' . basename($clientName));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));

readfile($file);

我对音频标签的使用:

<audio preload="auto" controls="controls" src="/record/download/id/55" />

提前感谢您的回答。

4

1 回答 1

1

Firefox 将发送范围请求(带有“Range”请求标头)并且您的服务器代码应该做出相应的响应(带有“206 Partial Content”状态)。当服务器似乎不理解范围请求时,firefox 将假定它是某种实时流并以所描述的方式运行。

如果您的代码通过 apache 服务器运行,您可以让它为您处理范围请求,例如使用 mod_xsendfile。另一种选择是自己实施。有关详细信息,请参阅 RFC 2616,尤其是第 10.2.7 和 14.35 节。

于 2012-06-12T14:32:06.910 回答