下面是我的三個函數的一些代碼片斷,用於在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