Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 播放/暂停音频流节点_Node.js_Audio_Stream_Lame_Speaker - Fatal编程技术网

Node.js 播放/暂停音频流节点

Node.js 播放/暂停音频流节点,node.js,audio,stream,lame,speaker,Node.js,Audio,Stream,Lame,Speaker,我使用NodeJs和lame以及扬声器来播放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

我使用NodeJs和lame以及扬声器来播放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秒后,我希望它立即暂停。我看过这篇帖子:但是没有答案。 我认为当我调用unpipe(或者我错了吗?)时,会有延迟导致流在接下来的3-4秒内已经缓冲了。如果是这样,有没有办法正确管理缓冲区,或者在调用unpipe时清理缓冲区

谢谢。

您应该使用该方法,与混合,因为现在您正在分离流并关闭文件

为什么需要几秒钟才能停止播放?因为流的缓冲区中仍然有数据。由于流以块的形式读取数据,因此平均大约有70KB的数据

您应该使用该方法,与混合,因为现在您正在分离流并关闭文件

为什么需要几秒钟才能停止播放?因为流的缓冲区中仍然有数据。由于流以块的形式读取数据,因此平均大约有70KB的数据