我想使用html5的新标签来播放一个wav文件(目前只支持FF . )
https://developer.mozilla.org/En/HTML/Element/Audio
我使用php的readfile命令从hdd获取wav文件,并将其写入http响应 .
但它不起作用 . firefox中的音频小部件只是不断运行加载动画 .
标签看起来很好,因为我可以在它的src / source中放置一个不同的url并且它工作正常 . 我可以使用标签并下载文件,并使用Quicktime正常播放 .
所以我想或许它的一个/所有内容 Headers .
使用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文件,所以我不能只发送 Headers ,因为我必须至少发送内容类型 .
有任何想法吗?
来源摘录:
header('Cache-Control: private');
header('Pragma: private');
header("Content-Type: $contentType");
readfile($filepath);
exit;
4 回答
您是否直接在浏览器中尝试过音频文件的URL?如果它包含错误或警告,将使您的 Headers 过时 . 并尝试从浏览器打开音频文件,看看它是否正确 .
我在使用php发送ogg音频文件时也遇到了同样的问题 . 玩 Headers 没有帮助 .
然后我从firefox 3.5.2更新到3.5.4 - 修复了问题 .
Mozilla支持哪些格式和MIME类型记录在their wiki上 . 这个WAVE文件很可能不会保证它会在HTML5浏览器中播放 . 确保,尝试在音频编辑器中打开文件并再次将其另存为WAVE PCM文件 .
你错过了
X-Content-Duration
. 客户需要在播放期间准确搜索,并且一些客户拒绝媒体内容,除非包含持续时间 . 还包括Content-Duration
,这正在慢慢取代X-Content-Duration
.以下是一些更多信息:Configuring web servers for HTML5 Ogg video and audio
另外,我会避免在输出中使用gzip或加密 .