一、添加背景音乐时,一般会用到两种标签:

1、<bgsound>

2、<embed>

二、一般用法 :

<bgsound src=”音频源” autostart=”true” loop=”false” />

<embed src=”音频源” autostart=”true” loop=”false” />

三、标签属性 :

1、autostart 当为 true 时 是自动播放模式 。反之, 当为false时 为一开始不进行自动播放(默认为false);

2、loop 当为 true 时 是无限次重播,false为不重播,某一具体值(正整数)为重播多少次;

3、当添加属性 hidden=”true” 时 为隐藏控制面板;

四、兼容问题

1、<bgsound> 标签 为 IE

2、<embed> 为其它

3、值得注意的是 当为IE9时 , 两标签都为支持;

TIPS :

例如:给 <div class=”mp3”></div>添加音频播放文件时。

(一)、正常情况下的写法:

if($.browser.msie){

$(“.mp3″).html(‘<bgsound src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

}else{

$(“.mp3″).html(‘<embed src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

}

现象:IE内核的没有声音:其它的有!

原因:<bgsound >标签在IE内核里是不会被直接读取的,所以。。。

解决:在判断为IE内核时 把两个标签都加载进去 ,而已<embed>标签要在<bgsound>前,并且将自动播放设置为 autostart=”false”;

如:

if($.browser.msie){

$(“.mp3”).html(‘<embed src=”music/one.mp3″ autostart=”false” loop=”true” hidden=”true” /><bgsound src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

}else{

$(“.mp3″).html(‘<embed src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

}

(二)、可能会有这样的一种特殊特殊情况:

现象:IE内核的出现重音(或当是启用浏览器的兼容性视图时出现);

原因:个人初步认为这是音频在切换的延迟问题;

根据:当我在给 <div class=”mp3”></div>添加音频播放文件前,来一个alert(“dd”)弹窗事件后,则音频播放正常;

解决:为了安全起见,设置延时一秒加载的同时,前利用else再进行对其它浏览器进行判断,最终写法如下:

if($.browser.msie){

setTimeout(function(){

$(“.mp3”).html(‘<embed src=”music/one.mp3″ autostart=”false” loop=”true” hidden=”true” /><bgsound src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

},1000);

}else if($.browser.mozilla || $.browser.opera || $.browser.safari){

$(“.mp3″).html(‘<embed src=”music/one.mp3″ autostart=”true” loop=”true” hidden=”true” />’);

}