在stream节点js时写入一个wav文件

有没有办法强制在一个stream上写入文件每个特定的时间/大小?

基本上,我使用套接字IOstream,从浏览器我发送一个缓冲区与audio,我发送与发射:

浏览器

c.onaudioprocess = function(o) { var input = o.inputBuffer.getChannelData(0); stream1.write( new ss.Buffer( convertFloat32ToInt16( input ) )); } 

服务器(nodejs)

 var fileWriter = new wav.FileWriter('/tmp/demo.wav', { channels: 1, sampleRate: 44100, bitDepth: 16 }); ss(socket).on('client-stream-request', function(stream) { stream.pipe(fileWriter); } 

我遇到的问题是文件demo.wav将只写完成stream,所以当我停止麦克风。 但我希望它总是写,因为我将使用谷歌语音识别,任何想法? 如果我使用pipe道从谷歌调用语音识别,块大小太小,谷歌无法识别它。

查看节点streamAPI ,看起来应该可以将选项参数添加到pipe道function。 尝试

 stream.pipe(fileWriter, { end: false });