首页 文章

http标头将文件发送到html5 <audio>

提问于
浏览
0

我想使用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 回答

  • 0

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

  • 0

    我在使用php发送ogg音频文件时也遇到了同样的问题 . 玩 Headers 没有帮助 .

    然后我从firefox 3.5.2更新到3.5.4 - 修复了问题 .

  • 1

    Mozilla支持哪些格式和MIME类型记录在their wiki上 . 这个WAVE文件很可能不会保证它会在HTML5浏览器中播放 . 确保,尝试在音频编辑器中打开文件并再次将其另存为WAVE PCM文件 .

  • 4

    你错过了 X-Content-Duration . 客户需要在播放期间准确搜索,并且一些客户拒绝媒体内容,除非包含持续时间 . 还包括 Content-Duration ,这正在慢慢取代 X-Content-Duration .

    以下是一些更多信息:Configuring web servers for HTML5 Ogg video and audio

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

相关问题