我想在我的 Arch Linux 系统上设置音频,以便多个程序可以访问我的声卡并一次发出音频。
不幸的是,asoundrc 文件的语法让我感到困惑,目前我有这个文件:
cm.!spdif {
type hw
card 1
device 0
}
pcm.!default {
type plug
slave {
pcm "plug:dmix" # this is a line is based on https://bbs.archlinux.org/viewtopic.php?id=95582
# I have also tried pcm "dmix", based on the thread. It failed to get multiple sound processes running simultaneously.
}
}
虽然一次一个程序可以发出声音,但每当我尝试在另一个程序中运行音频时,都不会发出声音,比如运行:
speaker-test -c 2
当另一个程序访问我的声卡时不发出声音。这很烦人,因为我经常暂停发声程序并启动其他程序,而我目前的情况不允许我这样做。
这是输出lspci | grep -i audio
:
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
所以我的问题是,“我怎样才能以一种好的、简单和自动化的方式进行设置?有没有我可以安装的程序可以毫无问题地设置音频?”
有一个很好的、简单的、自动化的方法:只要确保所有程序都使用
plughw
而不是hw
在指定他们想要的音频设备时。这将在真实设备dmix
前面放置一个自动生成的。hw
要将其设为默认值,您的
.asoundrc
文件应如下所示:用正确的数字标识您想要的声卡(参见例如
aplay -l
)。编辑
是的,数字按顺序是卡和设备。如果有多个子设备 ( ),您可以添加第三个子设备编号。
plughw:2,0,1