下面是我的三个函数的一些代码片段,用于在 Node.js 中启动、暂停和恢复可读流。Speaker()
但是,除了启动另一个对象之外,我想要一种更好的方法来控制对象。
我正在使用该spotify-web
模块从 spotify 获取音频流。我可以new Speaker()
每次都打电话而不是使用专用对象吗?new Speaker()
将解码的流通过管道传输到它后,我该如何处理?
下面的代码适用于我想做的事情,但我觉得有更好的方法。我是 Node.js 和 Passthrough Streams 的新手,因此任何关于流控制的想法或替代方案都将不胜感激。提前感谢您的任何帮助!
// Lame decoder & speaker objects
var lame = new Lame.Decoder();
var spkr = new Speaker();
/* pipe a readable passthrough stream to the decoder
* and then to coreaudio via speaker obj.
*
* snippet from start stream function()
*/
stream
.pipe(lame)
.pipe(spkr)
/* unpipe the stream
* pause the stream at current position
*/
stream
.unpipe(lame)
.unpipe(spkr.end());
stream.pause();
/* stream from its last position
* how can I reuse spkr()?
*/
stream
.pipe(lame)
.pipe(new Speaker());