每次重新启动时,PulseAudio 都会将接收器(在我的情况下为“HDMI 音频输出”)设置为默认值。
因此,每次重新启动时,我都听不到任何声音,并且每次都需要将默认接收器重新配置为“模拟输出”。
如何删除/禁用特定接收器(例如 HDMI),或设置覆盖现有接收器的默认接收器?
每次重新启动时,PulseAudio 都会将接收器(在我的情况下为“HDMI 音频输出”)设置为默认值。
因此,每次重新启动时,我都听不到任何声音,并且每次都需要将默认接收器重新配置为“模拟输出”。
如何删除/禁用特定接收器(例如 HDMI),或设置覆盖现有接收器的默认接收器?
只需将声卡的配置文件设置为“关闭”,例如:
pavucontrol
可以在其“配置”选项卡中很好地做到这一点:另一种方法是完全禁用pulseaudio中的任何自动连接功能,但是我喜欢我的蓝牙耳机的这个功能。使用上述解决方案,您可以以细粒度的方式禁用声卡。
在 18.10 中,我能够修复它
文件/etc/modprobe.d/blacklist.conf
添加
1.删除用户设置
编辑default.pa之前的另一种方法
~/.pulseaudio
是将隐藏目录重命名为~/.pulseaudio.000
/home 目录中的名称。这是存储用户定义设置的地方。如果删除或重命名,它将立即从/etc/pulse/default.pa设置中重新创建。2. 编辑默认值
仅当这对您的系统没有影响时,udev 才可能将 HDMI 接口加载为默认接收器。然后, HagenaarsDotNu已经提到了一种方法来编辑 default.pa。请注意备份当前的 default.pa。寻找这个非常自我解释的部分(注意 hal-detect 在 Ubuntu >10.04 中不起作用)。
3.优雅的方式
使音频工作的另一种更优雅的方法是从paprefs启用“同时输出”,如下所示:
这可以在内部音频和 HDMI 接口上实现音频输出。将此虚拟输出设备设为默认设备,您将拥有所有选项。
我在 Launchpad 上找到了这个建议
哪些状态您应该编辑 pulseaudio 设置
并替换
#set-default-sink output
为:set-default-sink {name of your device}
pactl list
通过查看卡部分name
字段中的输出可以找到设备的名称。我检查了,该方法在 10.10 中应该仍然有效
找到了更好的选择
如下所述使用 systemd 在启动时有效,但在将设备插入已运行的系统时无效。
要在热插拔和启动时忽略音频,udev 规则是更好的选择。
改编自Tell PulseAudio 使用 udev 忽略 USB 设备:
用于
lsusb
标识您要忽略的设备的供应商/产品 ID这
ID
部分给了我们神奇的数字创建一个 udev 规则文件,例如
/etc/udev/rules.d/80-ignore-audio-cards.rules
为脉冲音频设置环境变量。对我来说,这看起来像:
我
80-
任意选择了文件名的前缀。如果您有任何与pulseaudio相关的规则,请确保您的新文件以较小的数字开头重启确保生效
有了 udev 规则,pulseaudio 会完全忽略该设备。
上一个答案:
遇到同样的问题,并且给定的答案在重新启动后对我不起作用。我认为我的问题是延迟检测卡;当pulseaudio启动时,它并没有看到所有的卡片,并且
module-switch-on-connect
总是module-switch-on-port-available
在重置我的选择。我通过在登录时运行systemd 用户单元来解决这个问题。
pactl set_card_profile "$MY_CARD_NAME" off
找到你不想要的卡的名字;希望这个名字应该足以说明是哪一个:
对我来说,是“LAPDOCK”一直在窃取我的音频。
创建 systemd 单元,调用
pactl
和禁用卡:添加这些内容,将
ExecStart
行更改为引用您要删除的卡:启用服务:
systemctl --user enable disable-cards
现在,当您重新启动 systemd 将继续尝试断开该卡,直到它成功。插入显示器后,可能有更好的
systemd
配置来运行它;每个设备都显示为一个“单元”(例如在 的输出中systemctl --user
),因此可以在您插入/拔出东西时对其进行改进。另一种选择是改变你
/etc/pulse/default.pa
的使用module-switch-on-connect blacklist="REGEX_MATCHING_THE_CARD_NAME"
,但这对我不起作用;没有办法自定义module-switch-on-port-available
,我认为这就是为我选择它的原因。作为一种解决方法,请通过编辑
/etc/pulse/default.pa
和注释掉(使用#
)或删除来禁用该功能:并重新启动系统。