![唤醒时无声音,虚拟输出始终占据主导地位。'pulseaudio -k' 修复](https://linux22.com/image/1169349/%E5%94%A4%E9%86%92%E6%97%B6%E6%97%A0%E5%A3%B0%E9%9F%B3%EF%BC%8C%E8%99%9A%E6%8B%9F%E8%BE%93%E5%87%BA%E5%A7%8B%E7%BB%88%E5%8D%A0%E6%8D%AE%E4%B8%BB%E5%AF%BC%E5%9C%B0%E4%BD%8D%E3%80%82'pulseaudio%20-k'%20%E4%BF%AE%E5%A4%8D.png)
当它进入睡眠状态时,声音可以工作,当它从睡眠状态唤醒时,声音不起作用。因此,我进入 gnome 设置 > 声音,输出设备已重置为“虚拟输出”。而不是 HDMI 输出 [nvidia 卡驱动程序 430.50]。
简单地在设置中将输出设备更改回 HDMI,并不能解决问题。
发出命令pulseaudio -k
做修复问题。虚拟输出选项消失,HDMI 选项恢复。每次机器唤醒时,都会播放此内容,完全可重现。
也许有关系... 一周以来,我不得不通过线路输出使用一些外部扬声器,就在这一切开始之前。虽然我所做的只是将它们插入,一切都自动工作了。它们后来被退回了。
或者,有人想把问题归咎于 Ubuntu 19.10 更新?虽然这可能不公平,但时机确实合适。
无论如何,问题是,什么是永久的解决方案,以便我不需要在每次唤醒时对 pulseaudio 发出终止命令?
答案1
这是由 19.10 中引入的新内核引起的,例如以下情况:
如果没有,那么您可以使用这个脚本/etc/systemd/system-sleep/reloadpulse
:
#!/bin/sh
# NAME: reloadpulse
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: PulseAudo 8 sets sound to dummy ouput when going to sleep.
# This script kills and reloads pulse audio.
# DATE: November 25, 2019.
# NOTE: Written for ask ubuntu question:
# https://askubuntu.com/questions/1191649/why-no-sound-on-wake-dummy-output-takes-over-pulseaudio-k-the-fix
case $1/$2 in
pre/*)
echo "$0: Going to $2..."
;;
post/*)
echo "$0: Waking up from $2..."
pulseaudio -k
;;
esac
使用以下方式标记脚本为可执行文件chmod a+x /etc/systemd/system-sleep/reloadpulse
更新后停用它chmod a-x /etc/systemd/system-sleep/reloadpulse
如果更新不能解决问题,则再次使其可执行。
您需要重新启动才能使更改生效。
答案2
我在 Ubuntu 20.04 中遇到了类似的问题。
此命令解决了该问题:pulseaudio --start
答案3
我尝试了 @WinEunuuchs2Unix 的解决方案,但它不适用于我的 Lenovo Ideapad Y910 上的 Ubuntu 20.04.2。以下是我必须执行的操作,才能使其适用于我的设置:
将一个文件(我们称之为“pulseaudio-fix”)添加到目录 /usr/lib/systemd/system-sleep 并赋予其执行权限:
chmod a+x pulseaudio-fix
在文件中包含以下内容:
#!/bin/sh
case $1 in
post)
su user-name -c "
killall pulseeffects;
killall pulseaudio;
sleep 1;
DISPLAY=:0 /usr/bin/pulseeffects --gapplication-service &"
;;
esac
其中“user-name”是您的用户帐户的名称。在我的情况下,命令不会在系统帐户下运行。此外,关闭 pulseaudio 会干扰 pulseeffects,因此需要在 pulseaudio 之前将其关闭,并在其自动启动后重新启动。如果您不需要 pulseeffects,只需从上面的代码中删除两行即可。
在我看来,这使得睡眠问题后的随机“虚拟输出”永远消失了。