播放/暂停音频流NodeJs

时间:2015-11-25 11:13:35

标签: node.js audio stream lame speaker

我使用带有跛脚和扬声器的NodeJ来播放这样的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秒后,我希望它立即暂停。我看过这篇文章:http://activitystrea.ms/但是没有答案。 我认为当我调用unpipe(或者我错了吗?)时,流已经缓冲了下一个3-4秒的延迟,如果有的话,有没有办法正确管理缓冲区,或者当我调用unpipe时清理它?

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该在.pause()的混合中使用.resume()方法,因为您现在正在分离您的流,并关闭该文件。

为什么停止播放需要几秒钟的时间?因为流在其缓冲区中仍有数据。平均而言,这将是大约70KB的数据,因为流以块的形式读取数据。