我使用通过HDMI电缆连接到笔记本电脑的电视。

我希望能够快速执行以下操作:

  • 激活电视作为主显示屏并关闭笔记本电脑的屏幕,
  • 从扬声器切换到HDMI声音

以及相反的方向。

为此,我编写了以下bash脚本:

#!/bin/bash

# Switch between (HDMI output + HDMI sound) and (laptop display and laptop sound)

laptopDisp="eDP-1"
laptopSound="sound profile name returned by pacmd list-sinks | grep -e 'name:'"
hdmiDisp="HDMI-1"
hdmiSound="HDMI sound profile name returned by pacmd list-sinks | grep -e 'name:'"

currentDisplay=$(xrandr | grep " connected primary " | awk '{ print$1 }')

if [ "$currentDisplay" == "$laptopDisp" ]
then
    echo "Switching on HDMI, switch off main display"
    xrandr --output $hdmiDisp --auto
    xrandr --output $laptopDisp --off
    pacmd set-default-sink $hdmiSound
    pulseaudio -k
else
    echo "Switching off HDMI screen and set sound from laptop speakers:"
    pacmd set-default-sink $laptopSound
    xrandr --output $laptopDisp --auto
    xrandr --output $hdmiDisp --off
    pulseaudio -k
fi

当我运行它时,主屏幕将更改。不幸的是,尽管我在声音控制面板中看到声音源已更改,但是我听不到笔记本电脑扬声器发出的任何声音。

问题的根源可能是什么?