Ubuntu 挂起后更改声音设备,如何解决?

Mat*_*tJC 25 sound

所以我的设置目前正在使用通过 HDMI 插入我的笔记本电脑的显示器,并使用其中的扬声器来播放音频,而不是内置的笔记本电脑。当机器启动时,它默认使用 HDMI,但我经常全天暂停笔记本电脑,每当它恢复时,它会将声音设备切换到内置扬声器。

这不是你想象的大问题,但很烦人,我想知道是否有一个脚本可以用来强制它在恢复后重新选择 HDMI 或禁用内置扬声器,或者以某种方式设置为默认值。仅供参考,两个内置扬声器都在同一个“声卡”上,但它们是两种不同的设备。我使用 Ubuntu 16.04。

rub*_*o77 30

如果您不想重新启动,只需重新启动pulseaudio:

pulseaudio --kill; pulseaudio --start
Run Code Online (Sandbox Code Playgroud)


小智 10

我在 Ubuntu 17.10 上遇到了同样的问题。暂停后,甚至在将显示器调暗后,即使我的显示器没有任何扬声器,它也会始终将我的音频输出从数字输出(所需)更改为 HDMI。注释掉该行

load-module module-switch-on-port-available
Run Code Online (Sandbox Code Playgroud)

通过 HDMI 永久禁用声音中/etc/pulse/default.pa描述的技巧。

请注意,如上所述设置默认接收器并没有改变行为。此外,上面提供的用于在挂起后设置声卡配置文件的脚本是特定于用户的。


小智 5

此问题可能与 Pulseaudio 版本 8 的问题有关,如freedesktop.org 上的此(长)错误线程中所述

基本上,Pulseaudio 会在与 HDMI 失去联系时重新路由声音,并且在重新连接 HDMI 后不会返回。它在版本 9 中得到修复。

要将版本 8 恢复到以前版本的行为,请按照以下说明进行操作并重新启动。

编辑/etc/pulse/default.pa以注释掉(添加#到开头)该行:

#load-module module-switch-on-port-available
Run Code Online (Sandbox Code Playgroud)

然后在声音设置中设置声音输出,并通过暂停/恢复或消隐屏幕来检查它是否持续存在。它确实对我有用。


小智 3

我通过在恢复时将固定脉冲配置文件设置为输出:hdmi-stereo 解决了此问题。

要获取脉冲轮廓列表:pacmd list-cards。要更改脉冲轮廓,例如:pacmd set-card-profile 0 output:hdmi-stereo

关于挂起后运行脚本:Run Script on Wakeup?

关于以root身份运行pacmd:[已解决]通过pacmd / Newbie Corner / Arch Linux Forums:使用shell脚本控制pulseaudio


小智 2

跑步:

$ pacmd list-cards
Run Code Online (Sandbox Code Playgroud)

显示卡片的索引。例如,我的 pci 声卡位于索引 2。模拟输出的声音配置文件(再次作为示例)称为output:analog-stereo

然后:

$ pacmd set-card-profile 2 output:analog-stereo
Run Code Online (Sandbox Code Playgroud)

将其设置为输出(尝试一下)。要使其永久,请编辑/etc/pulse/default.pa并添加:

set-card-profile 2  output:analog-stereo
set-default-sink 2
Run Code Online (Sandbox Code Playgroud)

重新启动pulseaudio或重新启动以检查持久性。

  • 默认情况下,HDMI 音频在重新启动时始终保持不变,仅在从睡眠状态恢复后才更改为内置扬声器。按照您所说的操作并不能阻止 hdmi 在唤醒后更改为内置扬声器。有没有办法在系统从睡眠状态恢复时运行 set-card-profile 命令? (3认同)