Я использую node-lame для записи аудиовхода в файл.Через некоторое время я прекращаю запись, сохраняю ее, а затем, в какой-то момент, снова записываю.Код у меня работает ... но я продолжал получать сообщение об ошибке, что файл все еще записывался, когда я отключил кодировщик.Я обманул и просто поставил 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)
}