নোট করুন যে টমমি কিন্টোলার উত্তরটি ডুবন্ত ব্যবহারের জন্য নির্ভর করে যাতে আপনি প্রকৃতপক্ষে সিঙ্ক নম্বরটি পেতে পারেন।
এটিও নোট করুন যে এটি নাম্বারিত সিঙ্ক সূচকগুলিতে গণনা সূচক হিসাবে একই হতে পারে । ধরা যাক, উদাহরণস্বরূপ, আমাদের কাছে 3, 1, 2 এবং 3 সিঙ্ক রয়েছে এবং এটি 3 আমাদের নির্বাচিত সিঙ্ক, আমরা তখন 2 নম্বরটি সংযোগ বিচ্ছিন্ন করে আমাদের 1 এবং 3 দিয়ে রেখেছি Now pactl list sinks | grep "^[[:space:]]Volume:"
কেবলমাত্র 2 ভলিউম ক্ষেত্র আউটপুট দেবে, সুতরাং $SINK + 1
'ম লাইকটি কার্যকর হবে না তার জন্য মাথা / লেজকে পাইপিং করা হবে (
আমার সমাধান এই অনুমানের উপর ভিত্তি করে কাজ করে যে প্যাকএমডি সর্বদা একটি নির্দিষ্ট ক্রমে ডুবে থাকে। আপনি যদি আরও নির্ভরযোগ্য সমাধান চান তবে আপনার আউটপুট পার্স করতে হবে।
#!/bin/sh
# Get the index of the selected sink:
getsink() {
pacmd list-sinks |
awk '/index:/{i++} /* index:/{print i; exit}'
}
# Get the selected sink volume
getvolume() {
pacmd list-sinks |
awk '/^\svolume:/{i++} i=='$(getsink)'{print $5; exit}'
}
getvolume
দ্রষ্টব্য: ভলিউম ক্ষেত্রগুলি পৃথক কিনা তা আমার জানা নেই, আমার দেখতে (দেখতে pacmd list-sinks
) এর মতো দেখাচ্ছে :
volume: front-left: 42706 / 65% / -11.16 dB, front-right: 42706 / 65% / -11.16 dB
এছাড়াও আমি কেবলমাত্র প্রথম চ্যানেলের ভলিউম পাচ্ছি (সামনের-বাম) শতাংশ ফরম্যাটে (অর্থাত্ ফিল্ড 5), আপনার চ্যানেলগুলি বিভিন্ন স্তরে থাকতে পারে।
সম্পাদনা করুন:
দ্বিতীয় ভাবাতে আপনি সম্ভবত pacmd stat
কম সংশ্লেষিত সমাধানের জন্য সম্ভবত ডিফল্ট সিঙ্কের নামটি পেতে চান :
#/bin/sh
getdefaultsinkname() {
pacmd stat | awk -F": " '/^Default sink name: /{print $2}'
}
getdefaultsinkvol() {
pacmd list-sinks |
awk '/^\s+name: /{indefault = $2 == "<'$(getdefaultsinkname)'>"}
/^\s+volume: / && indefault {print $5; exit}'
}
setdefaulsinkvol() {
pactl $(getdefaultsinkname) $1
}
pactl list sinks
আপনাকে ভলিউম দেয়, তবে সেট-সিঙ্ক-ভলিউমের মতো সুন্দর কোনও সহজ বিন্যাসে নয়।