為交互添加恰當的音效,常常能改善用戶體驗。在我們所熟悉的windows里,清空回收站的碎紙聲就是很好的例子。
下面是一個利用HTML5, Jquery,給頁面添加音效的小組件(只是添加音效,并不是播放器)。
其實很簡單,就是利用HTML5中的audio標簽,播放聲音。不過為了照顧IE 6-8,還是用上了bgsound。
兼容所有主流瀏覽器(非主流不在考慮之列了)
閑話少說,上代碼:
<a href="#" class="fui-btn">播放</a>
<script>
/*Play sound component*/
/*
* profile: JSON, {src:'chimes.wav',altSrc:'',loop:false}
*
* setSrc: Function, set the source of sound
* play: Function, play sound
*/
if (!FUI){
var FUI = {};
}
FUI.soundComponent=function(profile){
this.profile={
src:'', //音頻文件地址
altSrc:'', //備選音頻文件地址 (不同瀏覽器支持的音頻格式不同,可見附表)
loop:false //是否循環播放,這個參數現在沒有用上
};
if(profile) {
$.extend(this.profile,profile);
}
this.soundObj=null;
this.isIE = !-[1,]; /*這個方法是前輩大牛發明的,利用ie跟非ie中JScript處理數組最后一個逗號“,”的差異, 不過對于IE 9,這個辦法就無效了,但此處正合我用,因為IE 9支持audio*/
this.init();
};
FUI.soundComponent.prototype={
init:function(){
this._setSrc();
},
_setSrc:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].src=this.profile.src;
}else{
this.soundObj[0].innerHTML='<source src="'+this.profile.src+'" /> <source src="'+this.profile.altSrc+'" />';
}
}else{
if(this.isIE){
this.soundObj=$ ('<bgsound volume="-10000" loop="1" src="'+this.profile.src+'">').appendTo('body'); //-10000是音量的最小值。先把音量關到最小,免得一加載就叮的一聲,嚇到人。
}else{
this.soundObj=$('<audio preload="auto" autobuffer> <source src="'+this.profile.src+'" /> <source src="'+this.profile.altSrc+'" /> </audio>').appendTo('body');
}
}
},
setSrc:function(src,altSrc){
this.profile.src=src;
if(typeof altSrc!='undefined'){
this.profile.altSrc=altSrc;
}
this._setSrc();
},
play:function(){
if(this.soundObj){
if(this.isIE){
this.soundObj[0].volume = 1; //把音量打開。
this.soundObj[0].src = this.profile.src;
}else{
this.soundObj[0].play();
}
}
}
};
var sd=new FUI.soundComponent({src:'ding.wav',altSrc:'ding.mp3'});
$('.fui-btn').bind('click',function(e){
sd.play();
});
</script>
附表
Format | IE 9 | Firefox 3.5 | Opera 10.5 | Chrome 3.0 | Safari 3.0 |
---|---|---|---|---|---|
Ogg Vorbis | No | Yes | Yes | Yes | No |
MP3 | Yes | No | No | Yes | Yes |
Wav | No | Yes | Yes | Yes | Yes |
Format |
IE 9 |
Firefox 3.5 |
Opera 10.5 |
Chrome 3.0 |
Safari 3.0 |
Ogg Vorbis |
No |
Yes |
Yes |
Yes |
No |
MP3 |
Yes |
No |
No |
Yes |
Yes |
Wav |
No |
Yes |
Yes |
Yes |
Yes |
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。