कमांड लाइन से वॉल्यूम लेवल कैसे प्राप्त करें?


16

मेरे पास एक टाइलिंग विंडो मैनेजर पर एक टेक्स्ट स्टेटस बार है और मैं इसे जानकारी खिलाने के लिए tcl का उपयोग कर रहा हूं। फिलहाल मुझे एक कमांड लाइन की आवश्यकता है जो वॉल्यूम स्तर 0% से 100% तक आउटपुट करता है। मैं आर्क लिनक्स का उपयोग कर रहा हूं।


लगता है कि आपको इसे पार्स करके सक्षम होना चाहिए /var/lib/alsa/asound.state
jordanm

नोट: भविष्य में, यह कहते हुए कि आप आर्क का उपयोग कर रहे हैं वास्तव में प्रासंगिक नहीं है। वास्तव में क्या मायने रखता है कि आप किस ध्वनि उपतंत्र का उपयोग कर रहे हैं, जैसे ALSA, OSS या पल्सएडियो।
स्ट्रगल

1
अपने शीर्षक में "बंद" जोड़ने के बजाय, आपको बस अपने स्वयं के प्रश्न का उत्तर देना चाहिए और इसे छोड़ देना चाहिए
जोर्डनम

जवाबों:


15

amixerस्टेटस बार में वॉल्यूम के लिए आउटपुट के लिए वन-लाइनर :

awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master)

क्या [][]मतलब है?
approximatenumber

4
@approximatenumber यह फ़ील्ड विभाजक को या तो सेट करता है ]या [
जसोनव्रीयन

ठंडा। मुझे नहीं पता था कि आप के लिए एक regexF
mihai

आप इस कमांड को एक चर में कैसे स्टोर करेंगे?
माइक

@ vol=$(awk '/%/ {gsub(/[\[\]]/,""); print $4}' <(amixer sget Master))
माईक

12

आप ऐसा करने के amixerलिए उपयोग कर सकते हैं ।

उदाहरण

$ amixer get Master
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 65536 [100%] [off]
  Front Right: Playback 65536 [100%] [off]

आप इसे बदल भी सकते हैं और इसे म्यूट भी कर सकते हैं:

मात्रा 75% निर्धारित करें

$ amixer set Master 75%
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 49152 [75%] [on]
  Front Right: Playback 49152 [75%] [on]

म्यूट करें / अनम्यूट

$ amixer set Master toggle
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 65536 [100%] [on]
  Front Right: Playback 65536 [100%] [on]

आप आउटपुट को शांत कर सकते हैं यदि आप इसे --quietस्विच के साथ नहीं देखना चाहते हैं ।

$ amixer --quiet set Master 75%
$ 

6

सही

amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }'
85%

बाएं

amixer sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%

ध्वनि सर्वर

यदि आप डिफ़ॉल्ट रूप में pulseaudio का उपयोग नहीं कर रहे हैं, तो आप निर्दिष्ट कर सकते हैं कि amixerकिस सर्वर के साथ उपयोग करना है-D pulse

amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }'
85%

यह मेरे लिए काम नहीं करता है ... किसी कारण से मास्टर के पास "स्पीकर" होने के बावजूद "लेफ्ट" और "राइट" नहीं है।
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.