我需要在IE(9+)和Safari(iPad,iPhone)中播放.m4a文件(在iPhone上录制)。我在设置正确的MIME类型时遇到问题。要在IE10中播放,我需要设置audio/mp4
,但需要设置Safari audio/aac
。
audio/mp4
我在iPad上获得了Cannot play audio file
。
使用audio/aac
我在IE中获得Error: Unsupported audio type or invalid file path
我可以为两者设置一种类型吗?
<audio controls="controls" autoplay="autoplay">
<source src="play.aspx?filename=sound.m4a" type="audio/mp4" />
</audio>
注释
使用替代播放器不适合我。
我通过.aspx页面提供文件,以便我可以控制HTTP标头。
通过观察页面HTML 5 Audio Across All Browsers using m4a, oga, mp3 and Flash,似乎可能的解决方案是提供type="audio/mp4"
和NO conten-type标头。但是,在我尝试解决的问题中,删除aspx中的HTTP标头过于复杂(请参阅Removing/Hiding/Disabling excessive HTTP response headers in Azure/IIS7 without UrlScan)。
答案 0 :(得分:1)
音频仍处于工作草案中,因此浏览器体验会有所不同。
话虽如此,最流行的哑剧类型是audio/x-m4a
。有些网站将audio/m4a-latm
显示为m4a
音频的有效mime类型,但截至撰写本文时,即使Chrome也无法识别该mime类型。
您可以在不同的浏览器中尝试使用此代码段来查看它是否有效 - 我在IE11,Chrome(v37)和IE9(通过Dev Tools模拟)中进行了验证。
我还发现(个人观察)iPhone上录制的音频大部分时间都不在网络上播放。几乎所有浏览器都说该文件无效,如果您下载录制的文件,它甚至不能在媒体播放器中播放(例如Windows Media Player)。我怀疑iOS核心音频应该归咎于此,但还没有找到任何结论。从Android录制的音频工作正常。
此时,闪存后备似乎是最好的选择(虽然不会对 iHateFlash 设备有帮助。)