唤醒时无声音,虚拟输出始终占据主导地位。'pulseaudio -k' 修复

唤醒时无声音,虚拟输出始终占据主导地位。'pulseaudio -k' 修复

当它进入睡眠状态时,声音可以工作,当它从睡眠状态唤醒时,声音不起作用。因此,我进入 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,只需从上面的代码中删除两行即可。

在我看来,这使得睡眠问题后的随机“虚拟输出”永远消失了。

答案4

这个方法对我来说很有效。你可以尝试:

pulseaudio -k && sudo alsa force-reload

我改编了这个答案这个 YouTube 视频

相关内容