我希望选择一个默认声卡,或者禁用所有其他声卡,以便在挂起后选择正确的声卡。
答案1
使用以下方式查找您想要的卡:
cat /proc/asound/cards
然后/etc/asound.conf
使用以下条目创建:
defaults.pcm.card 1
defaults.ctl.card 1
1
用上面确定的卡号 替换。来源:https://www.alsa-project.org/wiki/Setting_the_default_device
答案2
由于我没有 Pulse,因此接受的答案对我这样的其他人无效。
这应该提供一个不错的解决方案,仅依靠 ALSA 即可运行。
我有一些细节,因为我的机器上有 3 个设备(板载 2 通道、显卡 HDMI、PCI 5.1 通道),其中我喜欢的设备是最后一个。
对我有用的是/etc/asound.conf
使用以下内容进行编辑:(
资源:http://www.alsa-project.org/main/index.php/Asoundrc)
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
如果我直观地将我的默认设备设置为2
,则重新启动后上述设备的顺序将会变为这样:
0: [CMI8738 ]
1: [Nvidia ]
2: [Nvidia_1 ]
默认设备为 2。
(每次重启后都会继续,并且不重启 alsa 就不会让应用程序播放音频)
为了阻止我的机器欺骗我,我不得不编辑/etc/modprobe.d/alsa-base.conf
并添加以下行:(
资源(搜索第 6 次出现的“order”):https://alsa.opensrc.org/MultipleCards#How_to_choose_a_particular_order_for_multiple_installed_cards)
options snd slots=snd-cmipci,
这将强制我的首选设备为 0,以便默认卡匹配:
希望我永远不必再触碰这些设置,这将帮助其他像我一样不想处理 PulseAudio 丢失音频流的人。
(是的,这意味着像 Discord 和 Firefox 这样开发不良的应用程序在没有 Pulse 的情况下将无法识别您的音频设备)
编辑:现在我刚刚更新了一下这个问题,
如果您有多个设备共享同一个驱动程序,那么这里的解决方案就很混乱:
options snd-hda-intel index=1,0 vid=0x####,0x#### pid=0x####,0x####
出于某种原因,按索引反向排序会为我正确排序设备......
如果您希望在此之前或之后订购其他设备驱动程序,您可以将其与以下内容结合使用:
options snd slots=snd-cmipci,snd-hda-intel,
要获取 vid/pid 信息,请使用以下命令:
lspci -nn | grep Audio
[vid:pid]
它应该列出您的音频设备,并在每行末尾显示 ID 。
(如果您的音频设备名称不包含“Audio”,请小心)
答案3
这是使用 PulseAudio(不是 ALSA)动态设置默认声音输出卡的方法。
源和汇的检查清单
$ pactl list short sources 0 alsa_output.pci-0000_00_1b.0.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 1 alsa_input.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 2 combined.monitor module-combine-sink.c s16le 2ch 44100Hz SUSPENDED $ pactl list short sinks 0 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING 1 combined module-combine-sink.c s16le 2ch 44100Hz IDLE 2 alsa_output.pci-0000_01_00.1.hdmi-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
设置默认值:
$ pactl set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo $ pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
甚至可以设置端口。请参阅如何使用快捷键切换声音输出
参考: man pactl
答案4
我个人使用 alsamixer
alsamixer
按 F6 选择声卡。