Проигрывание wav в html

Собственно вопрос, если возможность в каждом браузере нативно проигрывать wav, или какой нибудь формат который бы проигрывался во всех браузрах? Это наверное фантастика, но всё же вдруг кто знает или сталкивался с кросс браузерной реализацией)
Причём нужно чтобы работало в цикле.

В IE работает (причём нормально работает в цикле), и работает в Opera (но тут при окончании проигрывания и начале нового цикла, происходит щелчёк, не знаю почему, может дело в системе)

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }

<bgsound src="/sound/music.wav" loop="-1" volume="70" >
 


Работает в Chrome и Safari (не работает в цикле)

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }

<EMBED src="/sound/music.wav" hidden="true" type="audio/wav" autostart="true" loop="true"></EMBED>
 


В firefox не работает в первом случае вообще, и просит поставить плагин во втором.

Есть конечно вариант засунуть wav в флэш и тайком пристроить на страницу. Но это крайний случай.

1 ответов


Полностью кроссбраузерных решений не существует. Но если очень надо, то это так же как и в системном вопросе - надо протестировать способы, при помощи которых имеются возможности вывода музыки, и, воспользоватся ими.

Это может быть:

1) HTML5 Тэг AUDIO - для браузеров, которые поддерживают HTML5


<audio src="horse.ogg" controls="controls">Нет поддержки HTML5 Audio</audio>
 
2) Тэг EMBED (или OBJECT) - для большинства современных браузеров у которых установлены плагины для работы с аудио.

<embed src="sample.wav" autostart="false" loop="false"></embed>
 
3) Тэг BGSOUND - Только для IE

<bgsound src="sample.wav" loop="-1" />
 
4) при помощи встроенного в сайт плейера, коих неведомое количество.
Например - jPlayer (плагин к jQuery)

Если html5 то можно как-то так:


var audioHtml = '';
 if ($.browser.msie && parseInt($.browser.version) < 9) {
   audioHtml += '<embed class = "bg_sound" src="bg.wav" type="audio/x-wav"';
   audioHtml += ' hidden="true"';
   audioHtml += ' autostart="true" loop="false">';
} else {
    audioHtml += '<audio class = "bg_sound" autoplay="autoplay">';
    audioHtml += '<source src="bg.ogg" type="audio/ogg; codecs=vorbis">';
    audioHtml += '<source src="bg.mp3" type="audio/mpeg">';
    audioHtml += '</audio>';
}
 $('body').append(audioHtml);
 

Зачем в 'audio' mp3 и ogg можно здесь глянуть - http://htmlbook.ru/html/audio

Параметры, естественно, свои - я просто кусок кода выдернул со странички :)
Работает в IE, Chrome, Opera, FF.