명령 하나로 모든 마이크를 음소거하세요

명령 하나로 모든 마이크를 음소거하세요

저는 Linux Mint 19.1을 실행 중이며 마이크를 음소거 및 음소거 해제하는 스크립트에 단축키를 할당하고 싶습니다. 단일 입력에 대해 이를 수행하는 많은 솔루션을 찾았습니다.

amixer set Capture toggle
pactl set-source-mute $source_number toggle

하지만 저는 다양한 입력(내장 마이크, 블루투스 헤드폰, 유선 헤드폰) 사이를 전환할 때 모든 입력을 동시에 켜고 끌 수 있는 장치를 선호합니다. 이는 모두 켜져 있거나 모두 꺼져 있음을 의미하며, 하나가 켜져 있고 다른 하나가 꺼질 위험이 없습니다.
날씨가 확실하지 않거나 할당된 소스 번호가 일정한지 잘 모르겠고 pactl마이크를 42번 다시 연결하거나 다른(블루투스) 장치를 연결하더라도 안정적으로 작동하는 솔루션을 원합니다.

시스템에서 사용하는 소스를 가져오는 명령이 있습니까(시스템과 동일Zoom 등 많은 응용 프로그램을 참조)?
그렇다면 명령/스크립트를 실행할 때 해당 장치의 상태를 가져와 관련된 모든 장치의 상태를 반대 상태로 설정하고 싶습니다.

이 작업을 수행하는 방법에 대한 제안이 있습니까?

답변1

이것이 귀하의 질문에 대한 답변은 아니지만 작동하는 것은

pactl set-source-mute @DEFAULT_SOURCE@ toggle

현재 사용 중인 마이크를 전환하거나

 pactl set-source-mute @DEFAULT_SOURCE@ 1

토글 대신 음소거

답변2

awk를 사용하면 모든 입력을 찾아 반복할 수 있습니다.

pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}'

참고: 나중에 마이크를 연결하고 일부 장치를 음소거한 경우 음소거 상태가 다른 장치 간에 동기화되지 않을 수 있습니다.

관련 정보