将PCM-Streamspipe道化为一个function
我有两个PCMstream( decoder1
+ decoder2
):
var readable1 = fs.createReadStream("track1.mp3"); var decoder1 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable1.pipe(decoder1);
和
var readable2 = fs.createReadStream("track2.mp3"); var decoder2 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable2.pipe(decoder2);
现在我想把stream传输到一个混合函数中,我可以使用这个缓冲区函数:
function mixStream(buf1, buf2, callback) { // The mixStream-Function is not implemented yet (dummy) var out = new Buffer(buf1.length); for (i = 0; i < buf1.length; i+=2) { var uint = Math.floor(.5 * buf1.readInt16LE(i)); out.writeInt16LE(uint, i); } this.push(out); callback(); }
我需要类似的东西
mixStream(decoder1.pipe(), decoder2.pipe(), function() { }).pipe(new Speaker());
输出到扬声器。 这可能吗?