मैं अपने लैपटॉप को एचडीएमआई में स्विच करने के लिए ऑडियो प्राप्त करने की कोशिश कर रहा हूं जब इसे प्लग किया जाता है, और इसे हटाए जाने पर मानक एनालॉग पर वापस।
मैंने स्विच करने के लिए स्क्रिप्ट को ट्रिगर करने के लिए एक udv नियम स्थापित किया है, हालांकि मुझे काम करने में समस्या हो रही है:
- ऐसा प्रतीत होता है कि जब तक मैं ध्वनि सेटिंग्स में एचडीएमआई ऑडियो आउटपुट का चयन नहीं करता हूं, तब तक यह उपलब्ध सिंक के रूप में मान्यता प्राप्त नहीं है, एचडीएमआई ऑडियो आउटपुट का चयन करने के बाद, एनालॉग आउटपुट अब सूचीबद्ध नहीं है।
नीचे देखें:
# HDMI plugged in, not selected in Sound settings.
$ pactl list short sinks
5 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI selected in sound settings
$ pactl list short sinks
7 alsa_output.pci-0000_00_1b.0.hdmi-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
kingamajick@kingamajick-laptop: ~
# HDMI removed
$ pactl list short sinks
9 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 48000Hz SUSPENDED
स्क्रिप्ट मैं आउटपुट टॉगल करने के लिए उपयोग कर रहा हूं:
#!/bin/bash
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
INPUTS=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
if [ $HDMI_STATUS = "connected" ]
then
pactl set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
for i in ${INPUTS[*]}; do pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.hdmi-stereo &> /dev/null; done
else
pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
for i in ${INPUTS[*]}; do pacmd move-sink-input $i alsa_output.pci-0000_00_1b.0.analog-stereo &> /dev/null; done-server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo
fi
स्क्रिप्ट ध्वनि सेटिंग्स में एचडीएमआई का चयन करने से पहले जब मैं इसे ट्रिगर करता हूं तो ऐसी कोई भी त्रुटि नहीं होती है।