コマンドラインからボリュームレベルを取得する方法は?


15

タイルウィンドウマネージャーにテキストステータスバーがあり、tclを使用して情報を提供しています。現時点では、ボリュームレベル0%〜100%を出力するコマンドラインが必要です。Arch Linuxを使用しています。


解析することでそれができるはず/var/lib/alsa/asound.stateです。
ヨルダン

注:将来的には、Archを使用しているということはあまり意味がありません。実際に重要なのは、ALSA、OSS、PulseAudioなど、使用しているサウンドサブシステムです。
-strugee

1
タイトルに「クローズド」を追加する代わりに、自分の質問に答えてそのままにしておく必要があります
ヨルダン

回答:


15

amixerステータスバーでボリュームのの出力を解析するためのワンライナー:

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

どういう[][]意味ですか?
おおよその数

4
@approximatenumberこれはどちらかとしてフィールドセパレータを設定]または[
-jasonwryan

涼しい。あなたが正規表現を持つことができるとは知りませんでしたF
mihai

このコマンドを変数にどのように保存しますか?
mike23

@ mike23vol=$(awk '/%/ {gsub(/[\[\]]/,""); print $4}' <(amixer sget Master))
jasonwryan

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%

これは私にはうまくいきません...何らかの理由で、「スピーカー」のような他のチャンネルがあるにもかかわらず、マスターには「左」と「右」がありません。
マイケル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.