HTML5音频标签无法在ios chrome和safari中播放音频文件

时间:2014-05-04 16:33:08

标签: ios html5 google-app-engine html5-audio

我很难获得简单的音频播放。我有一个曲目列表,每个曲目都是我想在用户按下相关播放按钮时播放的唯一网址。我尝试过soundmanager2和jplayer但是无法让它用于我的用例(桌面浏览器和ios)。我已经使用以下代码直接回到html5

<audio controls>
      <source src="/path/to/file" type="audio/wav">
    Your browser does not support the audio element.
</audio>

这适用于桌面Chrome和桌面游戏。在ios chrome和ios safari(最新版本)中,播放器未显示,而是显示灰色框内的“无法播放音频文件”的消息。

我正确使用此标签吗?我怎样才能克服这些错误?

更新1

我从google appengine发送wav文件(作为blob)。我发现safari无法播放,除非我将.wav添加到src的末尾 - 尽管src只是文件的间接链接。返回的实际文件以.wav结尾,但Safari不够聪明,无法识别。

更新2

以下适用于所有浏览器(如上所述) - 因此它并非特定于wav文件。

<audio controls preload="metadata">
      <source src="http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/AFsp/M1F1-Alaw-AFsp.wav" type="audio/wav">
    Your browser does not support the audio element.
</audio>

我已将谷歌应用引擎中的文件作为MIME附件和原始响应发送,但它没有任何区别。

更新3

我换了一个更长的wav文件(http://www.villagegeek.com/downloads/webwavs/ever_again.wav),这也无法播放(在ios上)。目前尚不清楚这是因为长度,大小还是其他变量。

更新4

我已经排除了尺寸问题,因为这个24s wav文件正常工作

<audio controls preload="auto">
      <source src="http://www.dailywav.com/sites/default/files/wavs/dontlikelaughing.wav" type="audio/wav">
    Your browser does not support the audio element.
</audio>

更新5

所以我从谷歌云存储桶中提供文件。保存文件时,我没有指定MIME类型,因此它将作为二进制/八位字节流返回。桌面浏览器足够聪明,可以克服这个问题,但移动浏览器不是。

1 个答案:

答案 0 :(得分:2)

所以我从谷歌云存储桶中提供文件。保存文件时,我没有指定MIME类型,因此它将作为二进制/八位字节流返回。桌面浏览器非常智能,可以克服这个问题,但移动浏览器却不是。因此,上述问题的答案是在写入GCS时为相关文件设置MIME类型。