16

我正在努力让 WAV 文件作为 HTML5 音频标签或通过移动 Safari(iPad/iPhone)中的常规可下载链接在 HTML 页面上播放:

<audio controls src="audio-pcm_s16le-8k.wav"/></audio>
<a href="audio-pcm_s16le-8k.wav">audio</a>

HTML5audio对象只是显示Cannot play audio file在其中,当我单击下载引用的锚点时,我得到一个黑色页面,中间有一个“无法播放这个圆圈”。我尝试了各种频率(8000、11025、16000、32000、44100)、各种编码(mu-law、Linear Signed 16-bit LE 和 BE)、各种容器(.wav、.caf、.aiff)和各种音频转换程序(Audacity、ffmpeg 和 Apple 自己的 afconvert)...我无法播放音频(除非我将其制作为 MP3 - 不,我不能只使用 MP3 或 AAC,我需要一个“原始" 格式太长,无法进入这里)。

我查看了 iOS 支持的格式,它似乎支持 WAV……有人对这个问题有任何经验吗?我使用的是最新的 iOS 6.0.1

编辑:选定的回答者让我解决了这个问题,但原因在答案的评论中。底线是它需要 HTML 范围标题来播放文件。

4

3 回答 3

10

好吧,至少你肯定让我走上了正确的轨道……显然根本不是文件……它是网络服务器。来自stockley 的完全相同的内容有效,但在我的网络服务器上却没有。我想我将不得不详细查看 HTTP 响应。我的网络服务器正在返回Content-Type: audio/x-wav,所以不是...

检查我设置的测试站点的标题,您希望返回Content-Type: text/html包含所需 HTML 数据的页面:

在此处输入图像描述

Content-Type: audio/x-wav对于实际的音频文件 ( http://www.test.com/file.wav)

在此处输入图像描述

于 2012-11-09T20:32:48.423 回答
9

通过反复试验,我发现您需要一个内容范围标头才能使其工作。这是我的标头示例,它允许 wav 文件在 iOS 版 Safari 中播放:

Content-Range: bytes XX-XX/XX
Content-Type: audio/wav 
Content-Disposition: attachment; filename="whatever.WAV" 
Content-Length: XX    

希望这可以帮助!

于 2013-07-24T13:26:44.960 回答
1

它工作得很好。我使用了 Content-Range: bytes XX-XX/XXContent-Length: XX

于 2016-04-19T16:17:58.970 回答