修复 PulseAudio 在挂起状态下从电视切换到笔记本电脑的问题

修复 PulseAudio 在挂起状态下从电视切换到笔记本电脑的问题

在我的笔记本电脑上,我正在运行通过 HDMI 连接到电视的 kodi。

暂停并恢复后,我的音频不再从电视中发出,而是从笔记本电脑扬声器中发出。我读过多篇关于如何在唤醒后设置默认音频输出的帖子,但似乎不起作用。有人知道如何解决这个问题吗?

答案1

修复 PulseAudio 在挂起状态下从电视切换到笔记本电脑的问题

此“未记录的功能”出现在 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如果您的系统上的设备(对于大多数人来说)不同,则可能需要执行额外的步骤。

答案2

我有同样的问题。我尝试了 /lib/systemd/system-sleep 解决方案中的 tv-sound,但对我不起作用。我尝试了用户命令行中的 pacmd set-card-profile 0 output:hdmi-stereo,但对我不起作用。

奇怪的是,打开扬声器控制下的声音设置确实有效。我没有做任何更改,只是打开设置这一操作就让 HDMI 声音恢复了。它不是自动的,但不会强迫我重新启动。

我在打开设置窗口之前和之后进行了 pacmd 转储,输出没有区别。

顺便提一下,/run/user/1000/pulse 中的 1000 是用户 ID,需要与用户名匹配。当我尝试解决方案时,我登录了我妻子的帐户,该帐户的用户 ID 为 1001。

相关内容