Web Audio APIでオーディオファイルを一時停止/再開できないことがよくあります。
しかし今、私はexampleを見て、実際には一時停止して再開できるようにしました。私は彼らがどのようにそれをやったか把握しようとしました。多分source.looping = false
が鍵だと思ったが、そうではなかった。
今のところ私のオーディオは常に最初から再生されています。ウェブオーディオAPIが一時停止から再開
これは私の現在のコード
var context = new (window.AudioContext || window.webkitAudioContext)();
function AudioPlayer() {
this.source = context.createBufferSource();
this.analyser = context.createAnalyser();
this.stopped = true;
}
AudioPlayer.prototype.setBuffer = function(buffer) {
this.source.buffer = buffer;
this.source.looping = false;
};
AudioPlayer.prototype.play = function() {
this.source.connect(this.analyser);
this.analyser.connect(context.destination);
this.source.noteOn(0);
this.stopped = false;
};
AudioPlayer.prototype.stop = function() {
this.analyser.disconnect();
this.source.disconnect();
this.stopped = true;
};
誰もが、それは仕事を取得するために、何をすべきかを知っていますか?
この例では、彼は 'noteGrainOn()'を使用していません(しかし、彼はどのようにしているのか分かりません)。しかし、とにかく、これは魅力のように働くので、私はこれを受け入れられた答えとみなします。ありがとうございました:) –
noteGrainOn()は、noteOn()と同様に、仕様で名前が変更されました。両方とも、グレインオフセット引数の有無にかかわらずplay()になりました。しかし、これはまだサポートされて見たことがありません。 – LeeGee
実際には 'start'(引数' start(howSoonRelativeToCurrentTime、fromSecondInBuffer、forDuration) ')の有無にかかわらず、Chrome Canaryで動作するようです –