myInterval = setInterval(function() { //var canIWrite = !speaker._writableState.needDrain; //var hasEnded = speaker._writableState.ended; var nextUp; if (queue.length === 0) { clearInterval(myInterval); return; } if (isFlushed === undefined || isFlushed === true) { isFlushed = false; nextUp = queue.shift(); speaker = new Speaker(SPEAKER_OPTIONS); speaker.on('flush', flushHandler); speaker.write(nextUp); speaker.end(); } }, 100);
var fn = function(err, buffer){ if (err){ if (typeof callback == 'function') callback(err, null); else throw err; } var speaker = new Speaker({ channels: 2, bitDepth: 16, sampleRate: 49700 }); speaker.write(new Buffer(buffer)); speaker.end(); if (typeof callback == 'function') callback(null, buffer); };