我有一台带有linux的PC,并连接了3个usb音频接口。每个音频接口都有一个立体声输出。 我有6个扬声器连接到每个立体声输出2。
我的目标是能够在任何频道的任何卡上播放任何声音。 例如,我需要在左声道上的第一个心形声音上播放敲打玻璃的声音,并在右声道的第二个心形声音上播放一些自然声音。
我已经调查了mpg123,但没有找到我想要的东西。
我更喜欢让玩家拥有下一个参数:
./example_player --audio_device=1 --channel=left glass.mp3
如果没有任何符合我要求的玩家,请建议任何python库以便轻松制作我的“example_player”。
谢谢!
答案 0 :(得分:0)
我找到了答案。 我更喜欢mplayer。它为我的目标提供了功能。
此命令:
$ mplayer -af channels=2:2:0:0:1:0 song1.mp3
将在左扬声器上播放声音。 2(输出通道数):2(移动信号计数):0:0(左通道到左通道)1:0(右通道到左通道)
要将声音传送到任何音频卡,您应该使用此命令:
$ mplayer -ao alsa:device=hw=0.0 song2.mp3
要查看所有可用的alsa设备,请使用以下命令:
$ aplay -l
在这里,您将看到所有可用的alsa设备。 ' hw'中的第一个数字param是卡号,第二个数字是设备号。
当然,您可以将这两个命令组合在一起:
$ mplayer -af channels=2:2:0:0:1:0 -ao alsa:device=hw=0.0 song3.mp3
我还使用PulseAudio找到了更有用的解决方案!
使用thic命令列出PulseAudio的所有可用audiodevices:
$ pactl list cards short
例如,您需要将声音输出到0卡(所有卡数字从0开始):
$ mplayer -ao --pulse::0 file.mp3
这也有效。