停止然后重新开始写入文件节点js

时间:2019-04-25 00:17:11

标签: javascript node.js fs

我正在使用节点标记将音频输入记录到文件中。一定时间后,我将停止记录,保存并在以后的某个时候再次记录。我拥有的代码可以正常工作...但是当我取消对编码器的管道传输时,却不断收到文件仍在写入文件的错误。我作弊,只是放了一个setTimeout来解决问题,但是我知道这不是正确的方法。我将如何接受此代码并使其正确无误,因此我无缘无故需要setTimeout?

recordingDecoder = chunker;
isRecording = true;
recordingDecoder.pipe(encoder);
var writeStream = fs.createWriteStream(__dirname+'/../recorded_calls/currentCall.wav');
writeStream.on('open', function() {
	console.log('write stream open')
	encoder.pipe(writeStream);	
})



...
...
...

if(isRecording) {
	 recordingDecoder.unpipe(encoder);
        setTimeout(function() {
            encoder.end();
            isRecording = false;
            encoder = false;
        }, 100)

	setTimeout(function() {
		recordingProccessor.process(function() {
			fs.unlink('../recorded_calls/currentCall.wav', function(){
				console.log('file deleted');
			});
		});
		
	}, 1000)
	
	
}

0 个答案:

没有答案