আমি আমার ল্যাপটপটি যখন প্লাগ ইন করা হয় তখন অডিওটিকে এইচডিএমআইতে স্যুইচ করতে এবং যখন এটি সরানো হয় তখন স্ট্যান্ডার্ড অ্যানালগে ফিরে আসার চেষ্টা করছি।
স্যুইচিং সঞ্চালনের জন্য একটি স্ক্রিপ্ট ট্রিগার করতে আমি একটি ওদেব বিধি সেট আপ করেছি, তবে এটি কাজ করতে আমার সমস্যা হচ্ছে:
- এটি প্রদর্শিত হয় যে আমি সাউন্ড সেটিংসে এইচডিএমআই অডিও আউটপুট নির্বাচন না করা পর্যন্ত এটি উপলব্ধ সিঙ্ক হিসাবে স্বীকৃত নয়, একবারে এইচডিএমআই অডিও আউটপুটটি নির্বাচিত হয়ে গেলে, এনালগ আউটপুট আর তালিকাভুক্ত হবে না।
নীচে দেখুন:
# 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
আমি যখন সাউন্ড সেটিংসে এইচডিএমআই নির্বাচন করার আগে স্ক্রিপ্টটি ট্রিগার করব তখন এ জাতীয় কোনও ডুব দেওয়া সম্পর্কে ত্রুটি দেয়।