对于大多数浏览器,什么技巧会在浏览器窗口中提供最可靠/兼容的声音警报

时间:2010-06-10 11:37:16

标签: jquery audio cross-browser mp3 wav

我希望能够在浏览器窗口中使用Javascript播放闹钟声音,最好是需要任何浏览器插件(Quicktime / Flash)。我一直在尝试使用Javascript中的标记和新的Audio对象,但结果是混合的:

Browser Test

如您所见,没有适用于所有浏览器的变体。

我是否会错过更多跨浏览器兼容的技巧?

这是我的代码:

// 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" />');

}

2 个答案:

答案 0 :(得分:1)

您是否尝试过HTML5's sound tag

答案 1 :(得分:1)

谢谢你的表。我也有同样的问题。我不想使用任何闪存,但它必须在任何平台上工作。 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);
...