Ubuntu 16.04暂停后更改声音设备,如何修复?

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

这不是一个大问题,你可以想象,但很烦人,我想知道是否有一个脚本,我可以用它来强制它重新启动后恢复或禁用内置扬声器,或设置默认一些如何。 仅供参考,内置扬声器采用相同的“声卡”,但是两种不同的设备

谢谢你的帮助!

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

pulseaudio --kill; pulseaudio --start 

我在Ubuntu 17.10上遇到了同样的问题。 暂停后,甚至在显示屏变暗后,即使我的显示器没有任何扬声器,它也会始终将数字输出(所需)的音频输出更改为HDMI。 评论出这条线

 load-module module-switch-on-port-available 

/etc/pulse/default.pa完成了诀窍,如通过HDMI永久禁用声音中所述。

请注意,如上所述设置默认接收器并未更改行为。 此外,上面提供的用于在暂停后设置音频卡配置文件的脚本是用户特定的。

我通过设置固定脉冲配置文件来修复此问题:hdmi-stereo on resume。

获取脉冲配置文件pacmd list-cardspacmd list-cards 。 要改变脉冲轮廓,例如: pacmd set-card-profile 0 output:hdmi-stereo

关于暂停后运行脚本:在唤醒时运行脚本?

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

跑:

 $ pacmd list-cards 

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

然后:

 $ pacmd set-card-profile 2 output:analog-stereo 

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

 set-card-profile 2 output:analog-stereo set-default-sink 2 

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

对我来说也是如此,但只有在操作系统启动或恢复时HDMI监视器没有“唤醒”时: 设置>声音中的设备列表甚至不再显示HMDI / DisplayPort – 内置音频

对我来说,修复是暂停会话,确保HDMI监视器开启,恢复会话。

在Ubuntu 18.04中暂停LTS在下拉菜单中隐藏在PowerOff按钮后面:按住鼠标,或按Alt键将PowerOff按钮转换为Suspend。 说说隐藏的导航!

这个问题可能与Pulseaudio第8版的问题有关,正如freedesktop.org上的这个(长)错误线程所述 。

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

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

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

 #load-module module-switch-on-port-available 

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

在Suspend上修复PulseAudio关闭HDMI声音

这个“未记录的function”出现在Ubuntu 16.04和PulseAudio 8的新版本中。

创建一个新文件/lib/systemd/system-sleep/tv-sound并复制到:

 #!/bin/sh case $1/$2 in pre/*) echo "Going to $2..." # Place your pre suspend commands here, or `exit 0` # if no pre suspend action required sleep 1 ;; post/*) echo "Waking up from $2..." # Place your post suspend (resume) commands here, or `exit 0` # if no post suspend action required sleep 2 export PULSE_RUNTIME_PATH="/run/user/1000/pulse/" sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo ;; esac 

注意:用您的用户名替换用户名rick (底部的第三行)。

然后用命令将其标记为可执行文件:

 sudo chmod +x /lib/systemd/system-sleep/tv-sound 

如果output:hdmi-stereo (大多数人的设备)在您的系统上有所不同,则可能需要执行其他步骤。

自Ubuntu 9.04以来,我遇到了这个问题。 它从来没有工作,现在刚刚获得HDMI或刚刚获得Ubuntu的孩子认为问题是新的,所以人们试图查看设置的最新变化被误导。 所以,让我说清楚:这个问题一直存在,没有人在努力。 我花了至少20个小时研究这个问题。 所以我过去做过的事情:

  1. 重启
  2. 在打开电视(HDMI目标)的同时,如果我在恰当的时间摆动鼠标,它可能会有50%的时间恢复声音。 这是与时间相关的/握手问题。
  3. 在Ubuntu 14中,我会将屏幕分辨率更改为不同的内容,然后再返回。 这似乎不适用于Ubuntu 16
  4. 不要让它hibernate。 另一种方法是进行定时关机。 稍后您只需启动计算机而不是重新启动。 请记住这是一个时间问题,所以我认为如果时间恰好使您的系统正常运行,这里的任何想法都可以工作。