4

我需要在 IE(9+) 和 Safari(iPad、iPhone)中播放 .m4a 文件(在 iPhone 上录制)。我在设置正确的 MIME 类型时遇到问题。为了在 IE10 中播放,我需要设置 audio/mp4但为 Safari audio/aac。我正在
使用iPad。随着我进入IEaudio/mp4Cannot play audio fileaudio/aacError: 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 标头。

从使用 m4a、oga、mp3 和 Flash 观察页面HTML 5 Audio Across All Browsers看来,可能的解决方案是提供type="audio/mp4"并且没有内容类型的标题。但是,在 aspx 中删除 HTTP 标头对于我要解决的问题来说太复杂了(请参阅在没有 UrlScan 的情况下在 Azure/IIS7 中删除/隐藏/禁用过多的 HTTP 响应标头)。

4

1 回答 1

7

音频仍处于工作草案中,因此浏览器体验会有所不同。

话虽如此,最流行的 mime 类型是audio/x-m4a. 一些网站显示audio/m4a-latmm4a音频的有效 mime 类型,但在撰写本文时,甚至 Chrome 也无法识别该 mime 类型。

您可以在不同的浏览器中尝试此代码段,看看它是否有效 - 我在 IE11、Chrome (v37) 和 IE9(通过开发工具模拟)中验证了它。

音频标签示例

我还发现(个人观察)iPhone 上录制的音频大部分时间都不会在网络上播放。几乎所有浏览器都说该文件无效,如果您下载录制的文件,它甚至无法在媒体播放器(例如 Windows Media Player)中播放。我怀疑 iOS 核心音频应该归咎于此,但还没有发现任何结论。不过,从 Android 录制的音频效果很好。

在这一点上,使用闪存回退似乎是最好的选择(尽管对iHateFlash设备没有帮助)。

于 2014-07-03T13:38:22.507 回答