Воспроизведение звука в обратном и кросс-браузере

Мне нужно воспроизвести аудиофайлы во многих браузерах и разных версиях. Старая система создает 4-битные WAV файлы, которые многие браузеры не могут обрабатывать. Все файлы содержат синтезированные или записанные человеческие голоса. В любом случае мне нужно будет его заменить. Поэтому мои вопросы:

1) Каков наилучший формат файла для аудиофайлов в отношении совместимости, размера и качества?

2) Какой лучший способ использовать HTML5 и оставаться обратно совместимым?

Нам нужно поддерживать версии Internet Explorer 6, 7, 8 и 9; Firefox, Chrome и Safari.

Обновить: наконец, он работает для IE 6-9, Firefox и Chrome; еще не тестировали Safari. Я узнал, что для Safari для окон требуется Quicktime, а для IE требуется проигрыватель Windows Media.

Ответ 1

Вот что я использую:

<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 работает в некоторых системах, не поддерживающих тег объекта.

Я собрал это вместе с некоторой информацией на нескольких веб-сайтах, но, к сожалению, я забыл URL-адрес.

UPDATE

С тех пор я перешел на использование howler.js для этого. Он автоматически обрабатывает все проблемы, связанные с браузером, связанные со звуком. К сожалению, он не поддерживает IE 6-8, но я отказался от поддержки этих способов.

Ответ 2

С тегом 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>