Pulseaudio:如何阻止音频接收器自动切换到 usb-c 集线器?

Pulseaudio:如何阻止音频接收器自动切换到 usb-c 集线器?

我正在使用 Ubuntu 21.04、英特尔平板电脑和带有音频适配器的联想 USB-C 集线器。

我从未将任何东西连接到 usb-c 集线器的音频插孔,但每次我将平板电脑插入 usb-c 集线器时,声音输出都会切换到 usb-c 集线器,而不是一直路由到平板电脑扬声器。然后我必须进入设置或使用声音输出扩展将其切换回扬声器。

使用 Windows 10 时不会发生此问题 - 音频保持通过平板电脑扬声器传输 - 我猜它会更进一步检测音频插孔是否实际插入了电缆。

/etc/pulse/default.pa曾尝试注释掉该module-switch-on-connect选项,后来又尝试注释掉该module-switch-on-port-available选项,但它似乎仍会在连接集线器时自动切换。

也可以看看操作系统对默认音频接收器的困惑 - 脉冲

答案1

我遇到了类似的问题(Ubuntu 18),这就是我解决问题的方法。

脉冲音频系统有一个模块,当插入新设备时会自动切换音频设备。通常,这很有用,尤其是当您插入耳机并拔下耳机时。我发现禁用此模块并没有太大帮助。较新版本的 pulseaudio 支持将设备列入黑名单,但我认为以下方法有时是更好的解决方案,并且适用于较旧版本的 pulseaudio。

在少数情况下,主要不是音频的设备(例如您的 USB 集线器和具有 HDMI 音频功能的视频卡)会使这种情况变得混乱。系统有修复此问题的优先级,但 USB 音频设备的优先级最高。

修复此问题需要为您的设备创建两个文件。为了便于说明,我们将该设备称为“myunusedaudio”。

第一个文件是/etc/udev/rules.d/99-myunusedaudio.rules 该文件需要包含一个 udev 规则来识别设备。通常,您需要将其与一个或多个属性匹配,例如 ATTRS{idProduct} ATTRS{idVendor} ATTRS{serial} 匹配行应包含属性 ENV{PULSE_PROFILE_SET}="myunusedaudio.conf",该属性将其链接到下一个文件。请查看其他指南,了解如何为您的设备构建和测试 udev 匹配规则。如果您对此文件进行更改,通常拔下 USB 设备并重新插入将使更改生效。

第二个文件将是:( /usr/share/pulseaudio/alsa-mixer/profile-sets/myunusedaudio.conf注意文件名与上面的匹配。)在此文件中,您设置优先级,以便您的设备具有最低优先级,并且永远不会成为默认设备。文件内容应为:

[General]
priority = 1

有了这两个文件之后,当您插入音频设备时,它就不会再被选为默认设备。

相关内容