PulseAudio 通常可以很好地确定可用的 ALSA 设备并自动设置它们。如果没有,我不清楚这种看似自动的链接是如何发生的。是 ALSA 告诉 PulseAudio 有关设备的推送,还是 PulseAudio 从 ALSA 配置中确定的推送?假设您有 3 个音频“卡”:A、B 和 C。 aplay -l
显示所有三个(假设所有三个都通过 aplay 按预期工作)但pacmd list-cards
只显示 A 和 B。如果您只希望 PulseAudio 使用 B 和 C,您如何让 PulseAudio 删除 A 并添加 C?我认为这将通过pacmd
和/或更改 PA 的启动配置文件来完成,但我不清楚具体如何执行此操作。
我认为模块负责添加设备。例如,有一个叫
module-udev-detect
,如果我pacmd list-cards
在我的系统中这样做,我会看到module-udev-detect.discovered = "1"
三个中的两个。第三个是蓝牙设备,所以我猜一个来自bluez5
模块。ENV{PULSE_IGNORE}="1"
稍微看一下网络,您可以通过设置udev 规则使 pulseaudio 忽略来自 udev 的设备。看我想对于蓝牙,您必须摆弄 bluez,才能忽略该设备。
至于为什么设备会被忽略,可能是因为当pulseaudio试图打开它时它被锁定(alsa设备只能打开一次)。
从@blihp 编辑:
要强制 PulseAudio 尝试使用音频设备,请将条目添加到
/etc/pulse/default.pa
:(替换
<card#>,<device#>
为您系统的特定硬件,例如0,1
)