6

我需要在许多不同的网络浏览器和不同版本中播放音频文件。旧系统生成 4 位 WAV 文件,许多浏览器无法处理。所有文件都包含合成或录制的人声。反正我要换了。所以我的问题是:

1) 就兼容性、大小和质量而言,用于音频文件的最佳文件格式是什么?

2) 使用 HTML5 并保持向后兼容的最佳方式是什么?

我们需要支持 Internet Explorer 版本 6、7、8 和 9;火狐、Chrome 和 Safari。

更新:终于让它适用于 IE 6-9、Firefox 和 Chrome;还没有测试过 Safari。我了解到 Windows 版 Safari 需要 Quicktime,而 IE 需要 Windows 媒体播放器。

4

2 回答 2

12

这是我正在使用的:

<audio autoplay>
    <source src="/static/sound/SOUND.mp3" type="audio/mpeg">
    <source src="/static/sound/SOUND.ogg" type="audio/ogg">
    <source src="/static/sound/SOUND.wav" type="audio/wav">
    <source src="/static/sound/SOUND.aiff" type="audio/x-aiff">
    <object>
        <param name="autostart" value="true">
        <param name="src" value="/static/sound/SOUND.mp3">
        <param name="autoplay" value="true">
        <param name="controller" value="false">
        <embed src="/static/sound/SOUND.mp3" controller="false" autoplay="true" autostart="true" type="audio/mpeg"></embed>
    </object>
</audio>

我在 MP3、OGG、WAV 和 AIFF 中提供相同的音频剪辑,然后让浏览器选择它想要播放的内容。该audio标签适用于 HTML5,该object标签适用于较旧的系统,并且embed适用于某些不支持 object 标签的系统。

我根据一些网站上的一些信息将其汇总在一起,但不幸的是我忘记了网址。

更新

从那以后,我转而使用howler.js来处理这些东西。它会自动处理与声音相关的所有跨浏览器问题。不幸的是,它不支持 IE 6-8,但我已经放弃了以任何方式支持这些。

于 2013-04-29T15:23:35.250 回答
5

使用 HTML5audio标签,您可以指定不同的音频类型来尝试加载,因为每个浏览器都允许不同的类型。此页面上有一个很好的兼容性图表:http: //html5doctor.com/native-audio-in-the-browser/

以下代码适用于大多数浏览器。它首先尝试新的 HTML5audio方法,然后回退到该embed方法。

<audio width="100" height="100" autoplay="" controls="" tabindex="0">
<source type="audio/mpeg" src="songs/All-My-Life.mp3"></source>
<source type="audio/ogg" src="songs/All-My-Life.ogg"></source>
<source type="audio/wav" src="songs/All-My-Life.wav"></source>
<embed width="100" height="50" src="songs/All-My-Life.mp3">
</audio>
于 2013-04-29T15:22:40.767 回答