我正在开发一个应用程序,我想同时播放两个mp3文件,并希望分别控制每个播放器的声音。为此,我需要单独控制每个流的响度。
我希望我可以使用node-speaker
和pcm-volume
执行此操作但我不能并行:
var Speaker = require("speaker");
var lame = require("lame");
var fs = require("fs");
var volume = require("pcm-volume");
var readable = fs.createReadStream("coming-out.mp3");
// see node-lame documentation for more information
var decoder1 = new lame.Decoder({
channels: 2,
bitDepth: 16,
sampleRate: 44100,
bitRate: 128,
outSampleRate: 22050,
mode: lame.STEREO
});
var masterSpeaker = new Speaker();
// Create a volume instance
var v1 = new volume();
v1.pipe(masterSpeaker); // pipe volume to speaker
decoder1.pipe(v1); // pipe PCM data to volume
readable.pipe(decoder1); // pipe file input to decoder
setTimeout(function() {
// Create a volume instance
// see node-lame documentation for more information
var decoder2 = new lame.Decoder({
channels: 2,
bitDepth: 16,
sampleRate: 44100,
bitRate: 128,
outSampleRate: 22050,
mode: lame.STEREO
});
var v2 = new volume();
v2.pipe(masterSpeaker); // pipe volume to speaker
decoder2.pipe(v2); // pipe PCM data to volume
readable.pipe(decoder2); // pipe file input to decoder
}, 2000);
另一种可能性是使用外部音频播放器,如VLC播放器,并通过api从节点控制它们,但vlc不能打开多个。
有没有其他linux音频播放器,在raspberry pi上工作并运行多个,它有一个api来控制音量?
我更喜欢节点扬声器的第一种可能性,因为我不需要太多的依赖。