마이크(예: 마더보드, 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'
은 실제로 마지막 줄에 마이크 상태를 표시합니다. 스크립트에서 해당 콘텐츠를 추출하는 한 가지 방법은 다음과 같습니다 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]
- 행의 여섯 번째 필드를 추출하여 인쇄합니다. 필드 구분 기호는
[
또는]
로 설정되어 스위치 상태 문자열("on" 또는 "off")을 얻습니다.
amixer
물론 이것이 가장 우아한 해결책은 아니지만 출력을 보다 구조화된 방식으로 생성하도록 하는 방법을 찾지 못했습니다 .