条件和循环:在多次调用该函数时,我怎么能不恢复音乐?

时间:2012-10-29 07:43:20

标签: javascript html5 loops conditional-statements html5-audio

我有这个功能用网络音频API播放音乐:

function playMusic(){

 if(countPre<count ){
    audio0.play();      
    audio0.src = '0.mp3';
    audio0.controls = true;
    audio0.autoplay = true;
    audio0.loop = true;
    source = context.createBufferSource();
    source.connect(analyser);
    analyser.connect(context.destination);
    }
 else{audio0.pause();}

 }

但是,count和countPre的值是在每秒运行10次的循环中生成的。

我必须将函数playMusic 放在循环中才能更新值。

问题出现了:

我每秒拨打playMusic 10次!每次,音乐恢复

我不希望它恢复,只要播放条件匹配,我希望它连续播放

那有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

你必须检查音乐是否已经在你的状态下播放。

不要认为这是一种音频方法。 您可以通过多种方式完成此操作,例如:

function playMusic(){

if(countPre<count && !this.is_playing ){
    this.is_playing = true;    
    audio0.play();      
    audio0.src = '0.mp3';
    audio0.controls = true;
    audio0.autoplay = true;
    audio0.loop = true;
    source = context.createBufferSource();
    source.connect(analyser);
    analyser.connect(context.destination);
    }
 else{audio0.pause();
    this.is_playing = false}
 }