向后和跨浏览器兼容的音频播放

时间:2013-04-29 15:13:21

标签: html html5 audio cross-browser backwards-compatibility

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

1)在兼容性,尺寸和质量方面,用于音频文件的最佳文件格式是什么?

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

我们需要支持Internet Explorer版本6,7,8和9; Firefox,Chrome和Safari。

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

2 个答案:

答案 0 :(得分:11)

以下是我正在使用的内容:

<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适用于某些不支持对象标记的系统。

我将这些信息放在几个网站上的一些信息中,但不幸的是我忘记了网址。

更新

我已经切换到使用howler.js这个东西了。它会自动处理与声音相关的所有跨浏览器问题。不幸的是它不支持IE 6-8,但我已经放弃了支持它们。

答案 1 :(得分:5)

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

以下代码适用于大多数浏览器。它首先尝试使用新的HTML5 audio方法,然后再使用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>
相关问题