2012-11-29 12 views
10

È possibile aggiungere ascoltatori di eventi ai suoni dell'audio di web audio? Ho cercato un evento o un trigger per quando un suono è completo ma non riesco a trovare nulla. Ecco come immagino funzionerebbe:API Web Audio, eventi?

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); 

risposta

4

Non oggi, n. So che ci sono state discussioni sull'aggiunta di qualche tipo di sistema di eventi, ma non è ancora nelle specifiche (se mai lo sarà). V'è tuttavia una proprietà playbackState su fonti di buffer che è possibile controllare: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode

Oltre a questo, è migliore da fare è quella di utilizzare i timeout in base alla lunghezza del buffer ed eseguire il callback quando che spara.

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

Check this out

Problemi correlati