看到<audio>有load()函数,可在动态添加<audio>时确保播放前已经载入,但不知道怎么使用,求指点

解决方案 »

  1.   

    function MusicClass(musicInfList){
         this.musicInfList=musicInfList;      
     this.inputMusic();
    }MusicClass.prototype.inputMusic=function(){
         var l=this.musicInfList.length;
     for(var i=0;i<l;i+=4)
     {
            document.write("<audio id="+this.musicInfList[i+1]+" loop='loop' controls='controls' preload='auto'> ");
    document.write("<source src="+this.musicInfList[i+2]+" type='audio/mpeg'>");
    document.write("<source src="+this.musicInfList[i+3]+" type='audio/ogg'>");
    document.write("</audio>");
     }
    };MusicClass.prototype.play=function(musicName,currentTime,volume){
         var l=this.musicInfList.length;
     
     for(var i=0;i<l;i++)
     {
        if(musicName==this.musicInfList[i]);
    {
       var slectMusic=document.getElementById(this.musicInfList[i+1]);
       //slectMusic.load();
       slectMusic.currentTime=currentTime;     //将时间调到0,以便重新播放
       slectMusic.volume =volume;       //音量调节,最大为1
       
       slectMusic.play();
     
    }//if name
     }//for i
    };MusicClass.prototype.pause=function(musicName){
         var l=this.musicInfList.length;
     for(var i=0;i<l;i++)
     {
        if(musicName==this.musicInfList[i]);
    {
       this.presentMusic=document.getElementById(this.musicInfList[i+1]);
       this.presentMusicmusic.pause();
    }
     }
    };
    function main()
    {
       var musicInfList=new Array("进行2","bg_music","进行2.mp3","进行2.wav");
       var music=new MusicClass(musicInfList);
       //alert("hold on");
       music.play("进行2",10,0.5);
    }
      

  2.   

    这个测试页面中,会有问题,即 music.play("进行2",10,0.5);  时音乐还没有载入。
      

  3.   

    有哪位知道,动态添加<audio>时怎么用load()函数在播放前确保音乐已经载入吗?
      

  4.   


    document.write("<audio id="+this.musicInfList[i+1]+" loop='loop' controls='controls' preload='auto'> ");貌似preload='auto'各个浏览器支持情况很不一样,最好不要用