50
edits
Notmasteryet (talk | contribs) |
Notmasteryet (talk | contribs) |
||
Line 310: | Line 310: | ||
function audioAvailable(event) { | function audioAvailable(event) { | ||
// Write the current framebuffer | // Write the current framebuffer | ||
var frameBuffer = event.frameBuffer; | var frameBuffer = event.frameBuffer; // frameBuffer is Float32Array | ||
writeAudio(frameBuffer); | writeAudio(frameBuffer); | ||
} | } | ||
Line 317: | Line 317: | ||
a1.addEventListener('loadedmetadata', loadedMetadata, false); | a1.addEventListener('loadedmetadata', loadedMetadata, false); | ||
function writeAudio( | function writeAudio(audioBuffer) { | ||
buffers.push( | // audioBuffer is Float32Array | ||
buffers.push({buffer: audioBuffer, position: 0}); | |||
// If there's buffered data, write that | // If there's buffered data, write that | ||
while(buffers.length > 0) { | while(buffers.length > 0) { | ||
var buffer = buffers. | var buffer = buffers[0].buffer; | ||
var written = a2.mozWriteAudio(buffer); | var position = buffers[0].position; | ||
var written = a2.mozWriteAudio(buffer.subarray(position)); | |||
// // If all data wasn't written, keep it in the buffers: | // // If all data wasn't written, keep it in the buffers: | ||
if(written < buffer.length) { | if(position + written < buffer.length) { | ||
buffers. | buffers[0].position = position + written; | ||
break; | |||
} | } | ||
buffers.shift(); | |||
} | } | ||
} | } |
edits