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