Audio Data API: Difference between revisions

Line 299: Line 299:
var a1 = document.getElementById('a1'),
var a1 = document.getElementById('a1'),
     a2 = new Audio(),
     a2 = new Audio(),
     buffer = [];
     buffers = [];


function loadedMetadata() {
function loadedMetadata() {
Line 318: Line 318:


function writeAudio(audio) {
function writeAudio(audio) {
   // If there's buffered data, write that first
   buffers.push(audio);
  buffer = (buffer.length === 0) ? audio :
    buffer.concat(audio);


   var written = a2.mozWriteAudio(buffer);
   // If there's buffered data, write that
  // If all data wasn't written, buffer it:
  while(buffers.length > 0) {
  if (written < buffer.length) {
    var buffer = buffers.shift();
    buffer = buffer.slice(written);
    var written = a2.mozWriteAudio(buffer);
  } else {
    // // If all data wasn't written, keep it in the buffers:
     buffer.length = 0;
    if(written < buffer.length) {
      buffers.unshift(buffer.slice(written));
      return;
     }
   }
   }
}
}
50

edits