0

我有这个功能可以使用网络音频 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 次!每一次,音乐都会继续

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

那么有什么解决办法吗?

4

1 回答 1

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}
 }
于 2012-10-29T09:04:32.423 回答