Какой трюк даст наиболее надежный/совместимый звуковой сигнал в окне браузера для большинства браузеров

Я хочу иметь возможность воспроизводить звук будильника с помощью Javascript в окне браузера, желательно с требованием любых плагинов для браузера (Quicktime/Flash). Я экспериментировал с тегом и новым объектом Audio в Javascript, но результаты неоднозначны:

Тест браузера

Как видите, не существует варианта, работающего во всех браузерах.

Я пропустил трюк, который более совместим с разными браузерами?

Это мой код:

// mp3 with Audio object
var snd = new Audio("/sounds/beep.mp3");snd.play();

// wav with Audio object
var snd = new Audio("/sounds/beep.wav");snd.play();

// mp3 with EMBED tag
$("#alarmsound").empty().append
('<embed src="/sounds/beep.mp3" autostart="true" loop="false" '+
 'volume="100" hidden="true" width="1" height="1" />');

// wav with EMBED tag
$("#alarmsound").empty().append
('<embed src="/sounds/beep.wav" autostart="true" loop="false" '+
 'volume="100" hidden="true" width="1" height="1" />');

}


person Dirk Paessler    schedule 10.06.2010    source источник
comment
Кроме того, ‹a href=sound.wav›Play‹/a› работает в любой версии Opera.   -  person Secko    schedule 10.06.2010
comment
‹a href=sound.wav›Play‹/a› не то, что я ищу, мне нужно инициировать звук из Javascript   -  person Dirk Paessler    schedule 11.06.2010
comment
Я кое-что читал о кодировке символов, возможно, есть хак, чтобы вызвать системный звуковой сигнал, просто идея.   -  person danjah    schedule 21.06.2011


Ответы (2)


Пробовали ли вы использовать звуковой тег HTML5?

person Ralf de Kleine    schedule 10.06.2010

Спасибо за стол. У меня такая же проблема. Я не хочу использовать флэш-память, но она должна работать на любой платформе. HTML 5 поддерживается только более новыми браузерами и не может использоваться в качестве «глобального» решения. Слишком много людей используют IE 6 :-) Я использовал свойство браузера jQuery для управления различными объектами:

if ($.browser.mozilla || $.browser.opera) {
  var snd = new Audio("beep.wav"); snd.play();
...
if ($.browser.msie) {
  var soundPlayer = $("<embed src='scripts/beep.mp3' hidden='true' autostart='true' loop='false' />");
  $("body").append(soundPlayer);
...
person JayGee    schedule 21.06.2011