我如何为任何连接的USB音频卡播放任何音频文件?

时间:2017-05-05 13:36:30

标签: linux audio audio-player

我有一台带有linux的PC,并连接了3个usb音频接口。每个音频接口都有一个立体声输出。 我有6个扬声器连接到每个立体声输出2。

我的目标是能够在任何频道的任何卡上播放任何声音。 例如,我需要在左声道上的第一个心形声音上播放敲打玻璃的声音,并在右声道的第二个心形声音上播放一些自然声音。

我已经调查了mpg123,但没有找到我想要的东西。

我更喜欢让玩家拥有下一个参数:

./example_player --audio_device=1 --channel=left glass.mp3

如果没有任何符合我要求的玩家,请建议任何python库以便轻松制作我的“example_player”。

谢谢!

1 个答案:

答案 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

这也有效。