マイク(マザーボード、USB、HDMIなど)が複数ある場合は、マイクがミュートされているかどうかを確認します。
1)以下を使用して見つかりません。
$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xfe720000 irq 48
1 [default ]: USB-Audio - AK5370
AKM AK5370 at usb-0000:00:1a.0-1.1, full s
2) これも同様である
$ amixer -D 'hw:0' | grep Capture
Capture channels: Front Left - Front Right
Simple mixer control 'Capture',0
Capture channels: Front Left - Front Right
Limits: Capture 0 - 46
Front Left: Capture 22 [48%] [6.00dB] [on]
Front Right: Capture 22 [48%] [6.00dB] [on]
Simple mixer control 'Capture',1
Capture channels: Front Left - Front Right
Limits: Capture 0 - 46
Front Left: Capture 42 [91%] [26.00dB] [on]
Front Right: Capture 42 [91%] [26.00dB] [on]
Capture channels: Front Left - Front Right
$ amixer -D 'hw:1' | grep Capture
Capture channels: Mono
Limits: Capture 0 - 78
Mono: Capture 70 [90%] [12.00dB] [off]
3) 以下の場合も同様です。
$ pactl list | sed -n '/^Source/,/^$/p' | grep Mute
Mute: yes
Mute: no
Mute: no
$ amixer scontrols
Simple mixer control 'Master',0
Simple mixer control 'Capture',0
型クエリに基づいて私bash
(または他の)スクリプトが値を読み取るようにするにはどうすればよいですか?hw:value,value
答え1
alsa-utilsパッケージにあるalsamixerを試すことができます。それは素晴らしいncurses型GUIを持っています。
答え2
出力amixer -D 'hw:1'
は実際に最後の行にマイクの状態を表示します。スクリプトからそのコンテンツを抽出する1つの方法は次のとおりですbash
。
amixer -D "hw:1" sget Mic | awk -F "[\[\]]" '/\[on|off\]/{ print $6 }'
amixer
を使用して-D
デバイスを指定し、照会するデバイスをsget
指定します。simple control
私にとってはコントロールは簡単ですMic
が、あなたには異なるかもしれません。これを使ってamixer -D "hw:1"
調べてください。
amixer
このアプローチは、出力があまり変更されない限り機能します。それがすることは:
amixer
の出力をパイプで接続しますawk
。[on]
またはを含まない行をフィルタリングします[off]
。だから私たちは一行で終わりますMono: Capture 70 [90%] [12.00dB] [off]
- 行の6番目のフィールドを抽出して印刷します。フィールド区切り文字は
[
または]
に設定され、スイッチ状態文字列(「on」または「off」)を取得します。
amixer
もちろん、これは最もエレガントな解決策ではありませんが、出力をより構造化された方法で生成する方法を見つけることができませんでした。