13

イベント リスナーを Web オーディオ API サウンドに追加することはできますか? サウンドが完了したときのイベントまたはトリガーを探していますが、何も見つかりません。これがどのように機能すると私が想像するかです:

soundSource = context.createBufferSource();
soundBuffer = context.createBuffer(audioData, true);
soundSource.buffer = soundBuffer;
soundSource.connect(volumeNode);
soundSource.addEventListener('ended', function(e){
    console.log("ended", "", e);
}, false);
soundSource.noteOn(context.currentTime);
4

3 に答える 3

12
var isFinished = false;
var source = context.createBufferSource();
source.onended = onEnded;
function onEnded() {
    isFinished = true;
    console.log('playback finished');
}

これをチェックしてください

于 2014-01-16T23:48:50.520 に答える
5

今日ではありません。ある種のイベント システムを追加することについての議論があったことは知っていますが、まだ仕様に含まれていません (そうなる場合)。ただし、チェックアウトできるバッファー ソースには、playbackState プロパティがあります

それ以外は、バッファの長さに基づいてタイムアウトを使用し、それが発生したときにコールバックを実行することをお勧めします。

于 2012-11-29T11:30:58.910 に答える
1

はい、追加されたようです: AudioBufferSourceNode.onended https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/onended

于 2016-07-15T15:20:29.153 に答える