@ টেরেসা-এ-জুনিয়র হিসাবে নির্দেশিতটি pactl
হ'ল ব্যবহারের সরঞ্জাম:
সবার আগে আমরা আমাদের পিএ ডুবে যাওয়ার আইডি পেতে চাই। আমার সিস্টেমে এটি আমি পাই:
$ pactl list short sinks
0 alsa_output.pci-0000_01_00.1.hdmi-surround module-alsa-card.c s16le 6ch 44100Hz SUSPENDED
1 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
সিঙ্ক 1 বর্তমানে আমার ডিফল্ট সিঙ্ক।
তবে এখন আমি চাই যে আমার সমস্ত বর্তমান এবং ভবিষ্যতের স্ট্রিমগুলি এইচডিএমআইয়ের (অর্থাৎ ডুবন্ত 0) মাধ্যমে প্লে করা উচিত।
পালস অডিওর জন্য ডিফল্ট সিঙ্ক সেট করার জন্য একটি কমান্ড রয়েছে, তবে এটি আমার পিসিতে কোনও প্রভাব ফেলবে বলে মনে হয় না:
$ pacmd set-default-sink 0 #doesn't work on my PC :(
পরিবর্তে, নতুন স্ট্রিমগুলি সিঙ্কের সাথে সংযুক্ত রয়েছে বলে মনে হচ্ছে যে একটি স্রোত সম্প্রতি সরে গেছে।
সুতরাং চলুন প্যাকটেলকে বলি যে বর্তমানে চলমান সমস্ত স্ট্রিমগুলি ডুবতে সরাতে 0
। আমাদের প্রথমে তাদের তালিকাভুক্ত করা দরকার:
$ pactl list short sink-inputs
290 1 176 protocol-native.c float32le 2ch 44100Hz
295 1 195 protocol-native.c float32le 2ch 44100Hz
ঠিক আছে, আমরা দুটি স্ট্রিম পেয়েছি (আইডি 290 এবং 295) যা উভয়ই ডুবির সাথে সংযুক্ত 1
।
আসুন তাদের ডুবে যেতে 0
:
$ pactl move-sink-input 290 0
$ pactl move-sink-input 295 0
সুতরাং, এটি হওয়া উচিত। এখন আমাদের কেবল একটি স্ক্রিপ্ট তৈরি করতে হবে যা আমাদের পক্ষে কাজ করে:
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 <sinkId/sinkName>" >&2
echo "Valid sinks:" >&2
pactl list short sinks >&2
exit 1
fi
newSink="$1"
pactl list short sink-inputs|while read stream; do
streamId=$(echo $stream|cut '-d ' -f1)
echo "moving stream $streamId"
pactl move-sink-input "$streamId" "$newSink"
done
আপনি এটি একটি সিঙ্ক আইডি বা প্যারামিটার হিসাবে একটি সিঙ্ক নাম দিয়ে কল করতে পারেন (যেমন হয় হয় 0
বা অন্য কিছু alsa_output.pci-0000_01_00.1.hdmi-surround
)।
এখন আপনি এই স্ক্রিপ্টটি কোনও উদেব ইভেন্ট বা কী শর্টকাটে সংযুক্ত করতে পারেন।
man pactl
পালস অডিও কমান্ড লাইন বিকল্পগুলির জন্য এক নজর থাকতে পারে ।