php - HTTP header ,将文件发送到html5 <audio>

标签 php audio html wav http-headers

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

相关文章:

javascript - 坏 masonry 元素 : null - using wordpress

python - 如何生成带有蜂鸣声的 WAV 文件?

ruby-on-rails - 如何在 wicked-pdf 中增加正常或给定的字体大小值

html - 如何在不留空白的情况下更改 div 的上边距?

javascript - 经过 jQuery 验证后,记录在数据库中被多次记录

java - jsoup 403 错误。简单的网页工作正常

php - 尽管时区有效,但设置默认时区不起作用

Android:在新 Activity 上暂停和重新启动音频,但在屏幕旋转时暂停和恢复

android - 从 iPhone 和 Android 客户端录制并流回 iPhone/Android 进行播放的最佳音频格式?

jquery - 如何使用 CSS 将我的 div 在表格中居中?