http头文件发送到html5 <音频>

我想用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;

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


您错过了X-Content-Duration 。 客户端在播放过程中需要精确查找,有些客户端会拒绝媒体内容,除非持续时间已包括在内。 还包括Content-Duration ,它正在慢慢取代X-Content-Duration

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

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


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

链接地址: http://www.djcxy.com/p/60725.html

上一篇: http headers to send file to html5 <audio>

下一篇: SQL tuning, long running query + rownum