有没有办法强制.pipe在流上每隔一定时间/大小写一个文件?
基本上,我正在使用套接字io流,从浏览器我发送一个带音频的缓冲区,我用emit发送:
浏览器
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只会在我完成流时写入,所以当我停止麦克风时。但我希望它总是写,因为我将使用谷歌进行语音识别,任何想法?如果我使用管道从谷歌调用语音识别,那么这些组块太小而谷歌无法识别它。
答案 0 :(得分:0)
查看节点stream API,看起来您应该能够在pipe函数中添加options参数。 尝试
stream.pipe(fileWriter, { end: false });