0

我想用html5的新标签来播放wav文件(目前只支持FF)

https://developer.mozilla.org/En/HTML/Element/Audio

我正在使用 php 的 readfile 命令从硬盘中获取 wav 文件,并将其写入 http 响应。

但它不起作用。Firefox 中的音频小部件只是不断运行加载动画。

该标签似乎很好,因为我可以在它的 src/source 中放置一个不同的 url,它工作正常。我可以使用标签并下载文件并使用 Quicktime 播放。

所以我想也许它的一个/所有内容标题。

使用 FF 扩展 httpfox 我可以看到这些响应标头从服务器到达:

(Status-Line)   HTTP/1.1 200 OK
Date    Mon, 12 Oct 2009 03:04:33 GMT
Server  securesauce
Cache-Control   private
Expires Mon, 26 Jul 1997 05:00:00 GMT
Pragma  private
Vary    Accept-Encoding
Content-Encoding    gzip
Content-Length  8217
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    audio/x-wav

所以一切看起来都是我所期望的。我在脚本中明确设置的唯一标头(其他标头在应用程序的其他位置设置)是:

Cache-Control   private
Pragma  private
Content-Type    audio/x-wav

当我尝试不同的 wav 文件(互联网上的随机文件)时,httpfox 没有列出任何响应标头。

因为它是一个发送内容的 php 文件,所以我不能只发送任何标题,因为我必须至少发送内容类型。

有任何想法吗?

来源摘录:

header('Cache-Control: private');
header('Pragma: private');
header("Content-Type: $contentType");
readfile($filepath);
exit;
4

4 回答 4

4

Mozilla 支持哪些格式和 MIME 类型记录在他们的 wiki上。看起来 MIME 类型不是您的问题,但这个 WAVE 文件很可能没有使用 Firefox 支持的纯 PCM 音频。WAVE 实际上可以包含其他格式,如 ADPCM、MP3 等。QuickTime 可能支持这些,但不能保证它会在 HTML5 浏览器中播放。可以肯定的是,请尝试在音频编辑器中打开该文件并再次将其保存为 WAVE PCM 文件。

于 2009-10-17T18:13:39.650 回答
1

你不见了X-Content-Duration。客户端在播放过程中需要准确寻找,并且一些客户端拒绝媒体内容,除非包括持续时间。还包括Content-Duration,正在慢慢取代X-Content-Duration

以下是更多信息:为 HTML5 Ogg 视频和音频配置 Web 服务器

另外,我会避免在您的输出中使用 gzip 或加密。

于 2013-09-11T16:07:22.340 回答
0

您是否直接在浏览器中尝试过音频文件的 url?如果它包含会使您的标头过时的错误或警告。并尝试从浏览器打开音频文件,看看是否正确。

于 2009-10-12T04:30:18.087 回答
0

我在使用 php 发送 ogg 音频文件时遇到了同样的问题。玩头球并没有帮助。

然后我从 firefox 3.5.2 更新到 3.5.4 - 解决了这个问题。

于 2009-10-29T23:05:18.857 回答