我想使用html5的新标记来播放wav文件(当前仅在FF中受支持)。
https://developer.mozilla.org/En/HTML/Element/Audio
我正在使用php的readfile命令从硬盘上提取wav文件,并将其写入http响应。
但是它不起作用。 firefox中的音频小部件仅使加载动画不断运行。
该标记似乎很好,因为我可以在它的src / source中放置一个不同的url,并且可以正常工作。我可以使用标签来下载文件,并且可以使用Quicktime正常播放。
因此,我认为可能是其中一个/所有内容 header 。
使用FF Extension 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
所以一切看起来都像我期望的那样。我在脚本中明确设置的唯一 header (其他在应用程序的其他位置设置)是:
Cache-Control private
Pragma private
Content-Type audio/x-wav
当我尝试使用另一个wav文件(互联网上的一个随机文件)时,httpfox没有列出任何响应头。
因为它是一个发送内容的php文件,所以我不能只发送任何 header ,因为我至少必须发送内容类型。
有任何想法吗?
资料摘录:
header('Cache-Control: private');
header('Pragma: private');
header("Content-Type: $contentType");
readfile($filepath);
exit;
最佳答案
their wiki记录了Mozilla支持哪些格式和MIME类型。看起来好像不是MIME类型是您的问题,但是此WAVE文件很可能没有使用Firefox支持的普通PCM音频。 WAVE实际上可以包含其他格式,例如ADPCM,MP3等。 QuickTime可能支持这些功能,但不能保证它将在HTML5浏览器中播放。可以肯定的是,尝试在音频编辑器中打开文件,然后再次将其另存为WAVE PCM文件。
关于php - HTTP header ,将文件发送到html5 <audio>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552586/