Я использую NodeJs с хромой и динамиком для воспроизведения звука в формате mp3 следующим образом:
var stream = fs.createReadStream('/path/to/dir/file.mp3');
var decoder = new lame.Decoder();
var speaker;
stream.pipe(decoder).on('format', function(format) {
speaker = new Speaker(format);
this.pipe(speaker);
});
Этот код работает нормально, моя проблема в том, что я хочу, чтобы он приостановился:
stream.unpipe();
Работает, звук приостанавливается, но через 3-4 секунды хочется, чтобы он мгновенно остановился. Я видел этот пост: https://stackoverflow.com/questions/30225379/node-lame-play-stop-and-resume-audio, но ответа нет. Я думаю, что есть задержка, из-за которой поток уже буферизован в следующие 3-4 секунды, когда я вызываю unpipe (или я ошибаюсь?), И если да, есть ли способ правильно управлять буфером или очищать его, когда я вызываю unpipe ?
Спасибо.