Confirmed users
656
edits
Line 290: | Line 290: | ||
var a1 = document.getElementById('a1'), | var a1 = document.getElementById('a1'), | ||
a2 = new Audio(), | a2 = new Audio(), | ||
buffer = []; | |||
function loadedMetadata(event) { | function loadedMetadata(event) { | ||
Line 299: | Line 300: | ||
function audioWritten(event) { | function audioWritten(event) { | ||
// Write the current | // Clear audio buffer first | ||
a2.mozWriteAudio( | while (buffer.length > 0) { | ||
var bufferedAudio = buffer.splice(0); | |||
buffer.length = 0; | |||
writeAudio(bufferedAudio); | |||
} | |||
// Write the current framebuffer | |||
var frameBuffer = event.mozFrameBuffer; | |||
writeAudio(frameBuffer); | |||
} | |||
function writeAudio(audio) { | |||
var written = a2.mozWriteAudio(audio); | |||
// If all data wasn't written, buffer it: | |||
if (written < audio.length) { | |||
var extra = audio.length - written; | |||
for (var i=0; i<extra; i++) { | |||
buffer.push(audio[written + i]); | |||
} | |||
} | |||
} | } | ||
</script> | </script> |