我通过 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-