我很难获得简单的音频播放.我有一个曲目列表,每个曲目都是我想在用户按下相关播放按钮时播放的唯一网址.我尝试过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类型,因此它将作为二进制/八位字节流返回.桌面浏览器非常智能,可以克服这个问题,但移动浏览器却不是.
最佳答案 所以我从谷歌云存储桶提供文件.保存文件时,我没有指定MIME类型,因此它将作为二进制/八位字节流返回.桌面浏览器非常智能,可以克服这个问题,但移动浏览器却不是.因此,上述问题的答案是在写入GCS时设置相关文件的MIME类型.