diff --git a/lib/mic.js b/lib/mic.js index 2f76ae2..4e0b249 100644 --- a/lib/mic.js +++ b/lib/mic.js @@ -16,6 +16,7 @@ var mic = function mic(options) { var exitOnSilence = options.exitOnSilence || 0; var fileType = options.fileType || 'raw'; var debug = options.debug || false; + var buffer = options.buffer || 500; var format, formatEndian, formatEncoding; var audioProcess = null; var infoStream = new PassThrough; @@ -47,18 +48,20 @@ var mic = function mic(options) { if(isWindows){ audioProcess = spawn('sox', ['-b', bitwidth, '--endian', endian, '-c', channels, '-r', rate, '-e', encoding, - '-t', 'waveaudio', 'default', '-p'], + '-t', '--buffer', buffer , 'waveaudio', 'default', '-p'], audioProcessOptions) } else if(isMac){ audioProcess = spawn('rec', ['-b', bitwidth, '--endian', endian, '-c', channels, '-r', rate, '-e', encoding, - '-t', fileType, '-'], audioProcessOptions) + '-t', fileType, '--buffer', buffer , '-'], audioProcessOptions) } else { + var buffer_time=(buffer/rate)*1000000; audioProcess = spawn('arecord', ['-c', channels, '-r', rate, '-f', - format, '-D', device], audioProcessOptions); + format, '-D', device, '--buffer-time', buffer_time], audioProcessOptions); } + if(debug)console.log(audioProcess); audioProcess.on('exit', function(code, sig) { if(code != null && sig === null) {