jquery控制背景音乐开关与自动播放提示音的方法
本文实例讲述了jquery控制背景音乐开关与自动播放提示音的方法。分享给大家供大家参考。具体如下:
很多人初学网页制作时在网页中加入一段背景音乐,听到音乐响起的那一刻往往都会有一丝的成就感。
这里就为大家讲解如何使用js控制背景音乐播放与停止。具体如下:
一、jquery控制背景音乐开关
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"> <head> <scriptsrc="js/jquery.min.js"></script> <scripttype="text/javascript"> //加载背景音乐,并自动播放 $('#bg_music').append('<embedid="m_bg_music" loop=true volume="60"autostart=truehidden=truesrc="guoan.mp3"/>'); $('#bg_music_btn').click(function(){ varstate=$('#bg_music_btn').attr('state'); if(state=='1')// { $('#bg_music_btn').attr('state','0'); $('#bg_music_btn').html('打开背景音乐'); $('#m_bg_music').remove(); }elseif(state=='0') { $('#bg_music_btn').attr('state','1'); $('#m_bg_music').remove(); $('#bg_music_btn').html('关闭背景音乐'); $('#bg_music').append('<embedid="m_bg_music" loop=true volume="60"autostart=truehidden=truesrc="guoan.mp3"/>'); } }); </script> </head> <body> <!--控制播放--> <divid="bg_music_btn"state='1'>关闭背景音乐</div> <!--背景音乐--> <divid="bg_music"></div> </body> </html>
以上介绍了jquery如何控制背景音乐开关的方法,接下来再进一步扩展。
二、JQuery自动播放提示音
最早对网站有自动提示音的功能,发现在Discuz论坛中出现。但是它有一个问题就是只支持flash,不支持HTML5,不明确最新版本中是否支持HTML5。
对于Discuz7.2版本中,提供了player.swf、pm_1.mp3、pm_2.mp3、pm_3.mp3,然后使用如下脚本来实现:
<divid="soundplayerlayer"style="position:absolute;top:-100000px"></div> <scripttype="text/javascript"reload="1"> functionsoundplayer(file){ $('soundplayerlayer').innerHTML=AC_FL_RunContent('id','pmsoundplayer','name','pmsoundplayer','width','0′,'height','0′,'src','{$boardurl}images/sound/player.swf','FlashVars','sFile={$boardurl}images/sound/pm_'+file+'.mp3′,'menu','false', 'allowScriptAccess','sameDomain','swLiveConnect','true'); } </script>
可惜这个方法局限在flash,在苹果设备上可能就会遇到麻烦了。
HTML5开源播放器JPlayer支持自动播放提示音
JPlayer支持play事件触发自动播放提示音。
1.装载JPlayer到一个div层,例如#jplayer。
$(function(){ $("#jplayer").jPlayer({ swfPath:"http://www.jplayer.org/latest/js/Jplayer.swf", ready:function(){ $(this).jPlayer("setMedia",{ mp3:"./resources/message.mp3" }); }, supplied:"mp3" }); }); body部分加入:<divid="jplayer"></div>
装载JQuery完成后,jplayer的div内容在支持swf的浏览器内变成:
<divid="jplayer"style="width:0px;height:0px;"><imgid="jp_poster_0"style="width:0px;height:0px;display:none;"><objectheight="1"width="1"id="jp_flash_0"data="http://www.jplayer.org/latest/js/Jplayer.swf"type="application/x-shockwave-flash"style="width:0px;height:0px;"><paramname="flashvars"value="jQuery=jQuery&id=jplayer&vol=0.8&muted=false"><paramname="allowscriptaccess"value="always"><paramname="bgcolor"value="#000000"><paramname="wmode"value="opaque"></object></div>
在支持HTML5的浏览器内变成:
<divid="jplayer"style="width:0px;height:0px;"><imgid="jp_poster_0"style="width:0px;height:0px;display:none;"><audioid="jp_audio_0"preload="metadata"src="./resources/message.mp3"></audio></div>
完成装载后就是触发播放的事件了。
2.触发播放提示音事件
$("#jplayer").jPlayer('play');
3.循环播放函数,每5秒播放一次提示音
functionPlaySound(){ $("#jplayer").jPlayer('play'); setInterval("PlaySound()",5000); returntrue; }
附录:
1.解决无法自动播放提示音的问题
如果在加载JQplayer后,立刻运行播放的触发事件,没有任何效果!具体是什么原因我也不太清楚,估计是因为音频文件没有加载上。
2.解决方法是让触发事件等待5秒中执行。
setTimeout("$('#jplayer').jPlayer('play')",5000);
加载完页面,5秒后自动播放提示音。
希望本文所述对大家的jquery程序设计有所帮助。