0

私はWebオーディオ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 の値は、1 秒あたり 10 回実行されるループで生成されます。

値を更新するには、関数 playMusicをそのループ内に配置する必要があります。

そして、ここに問題があります:

playMusic を 1 秒間に 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 に答える