下面是我的三个函数的一些代码片断,用于在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());
我能够想出一些东西,但仍然存在一个错误,说明如何将流展开并重新导入,导致流在输出中重叠另一个流。仍然接受其他意见,谢谢! – pdago