16.04 在屏幕变暗后将 HDMI 切换至扬声器

16.04 在屏幕变暗后将 HDMI 切换至扬声器

我通过 HDMI 电缆连接的音频和视频设备设置如下:

laptop --> AV receiver with speakers --> LCD display

当我的屏幕因不活动而变黑时,声音也会消失。它在 Windows 上的工作方式相同,所以我已经习惯了。当我移动鼠标时,视频和声音都会恢复。

但是,最近从 Ubuntu 14.04 升级到 16.04 后,当屏幕保护程序停用时,声音输出设备被切换到模拟笔记本电脑扬声器。有什么解决办法吗?

非常感谢,zbig

答案1

好的,经过几个小时在互联网上搜索和学习 shell 脚本后,我编写了下面的脚本,可以粗暴地将声音输出设备切换到我想要的。

//编辑:我还添加了测试,如果 HDMI 电缆已连接

#!/bin/bash

while sleep 5s ; do
    SCR_SAVER_STATE=$(gnome-screensaver-command --query | grep -o "\w*active\w*")

    if [ "$SCR_SAVER_STATE" = "active" ]
    then
        # switch to speakers, if screensaver is active
        pacmd set-card-profile 0 "output:analog-stereo+input:analog-stereo"
    else
        # check, if HDMI output is available (cable connected)
        # if YES switch to HDMI, or to Speakers otherwise
        HDMI_AVAILABLE=$(pacmd list-cards | grep "hdmi-output-0" | cut -d ' ' -f 12- | rev | cut -c 2- | rev)

        if [ "$HDMI_AVAILABLE" = "yes" ]
        then
            pacmd set-card-profile 0 "output:hdmi-stereo+input:analog-stereo"
        else 
            pacmd set-card-profile 0 "output:analog-stereo+input:analog-stereo"
        fi
    fi
done

我已将脚本保存在我的主目录中并将其添加到启动应用程序中。

我猜这是解决问题的非常不优雅的方法,但至少它有效。该脚本是针对我的硬件定制的,因此如果您遇到同样的问题,那么您必须找出您的声音输出配置文件。您可以使用以下命令查找所有配置文件:

pacmd list-cards

您还可以通过运行以下命令找到您的活动个人资料:

pacmd list-cards | grep "active profile" | cut -d ' ' -f 3-

相关内容