2012-11-29 21 views
10

ウェブオーディオAPIサウンドにイベントリスナーを追加することはできますか?私は、サウンドが完了しても何も見つけられないときのためのイベントやトリガーを探していました。ここで私はそれがうまくいくと想像している方法です:Web Audio 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

今日はありません。何らかのイベントシステムを追加することについて話し合ってきたことは知っていますが、仕様にはまだありません。しかし、あなたがチェックアウトできるバッファーソースにはplaybackStateプロパティーがあります:https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode

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

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

Check this out

関連する問題