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