為你的html5網(wǎng)頁添加音效示例

字號:


    這篇文章主要介紹了為你的html5網(wǎng)頁添加音效示例,需要的朋友可以參考下
    為交互添加恰當(dāng)?shù)囊粜?,常常能改善用戶體驗。在我們所熟悉的windows里,清空回收站的碎紙聲就是很好的例子。
    下面是一個利用HTML5, Jquery,給頁面添加音效的小組件(只是添加音效,并不是播放器)。
    其實很簡單,就是利用HTML5中的audio標(biāo)簽,播放聲音。不過為了照顧IE 6-8,還是用上了bgsound。
    兼容所有主流瀏覽器(非主流不在考慮之列了)
    閑話少說,上代碼:
    代碼如下:
    <a href="#">播放</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        //是否循環(huán)播放,這個參數(shù)現(xiàn)在沒有用上
    };
    if(profile) {
    $.extend(this.profile,profile);
    }
    this.soundObj=null;
    this.isIE = !-[1,];
    /*這個方法是前輩大牛發(fā)明的,利用ie跟非ie中JScript處理數(shù)組最后一個逗號“,”的差異,
    不過對于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是音量的最小值。先把音量關(guān)到最小,免得一加載就叮的一聲,嚇到人。
    }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>