기본 사운드 입력 장치 자동 전환

기본 사운드 입력 장치 자동 전환

힌지업 마이크가 있는 Logitech G930 무선 헤드셋 외에 책상에 부착된 새 마이크도 구입했습니다.

책상에 앉을 때 거기에 있는 마이크를 기본 장치로 설정하고 싶습니다. 책상을 떠나 헤드셋 마이크를 아래로 내리면 기본 입력 장치를 해당 장치로 전환하고 싶습니다.

헤드폰을 물리적으로 음소거/연결하면 음소거되었음을 알고 여기에 eG를 표시하므로 내 OS에 일종의 이벤트를 보내는 것 같습니다.

[ 영상]

나는 몇 가지 연구를 수행하고 다음과 같은 소프트웨어를 찾았습니다.니르소프트, 그런데 제가 보기에는 음소거 상태를 얻을 수 있는 방법이 없습니다. 분명히 C++ CoreAudio로 수행할 수 있습니다. 단지 10개 라이너를 위해 3GB 컴파일러와 Visual Studio를 다운로드하고 싶지는 않습니다.

필요한 것을 달성하기 위해 Python 또는 Node.js/대체 도구와 같은 다른 언어용 CoreAudio 바인딩이 있습니까?

답변1

나는 마침내 이것을 사용하여 이것을 해결했습니다.https://github.com/frgnca/AudioDeviceCmdlets/PowerShell-스크립트 내에서.

$Microphone = "{0.0.1.00000000}.{50486949-aae2-4574-97fb-4660fd26b6f7}"
$Headset = "{0.0.1.00000000}.{4bf15a7e-d091-4bcb-ae8f-5cadfdcffca7}"

while (1) {
    $ActiveDevice = Get-AudioDevice -Recording
    $HeadSetObject = Get-AudioDevice -ID $Headset
    $HeadSetIsMuted = $HeadSetObject."Device"."AudioEndpointVolume"."Mute"
    if ($HeadSetIsMuted) {
        if ($ActiveDevice."ID" -eq $HeadSet) {
            Set-AudioDevice -ID $Microphone
        }
    } else {
        if ($ActiveDevice."ID" -eq $Microphone) {
            Set-AudioDevice -ID $Headset
        }
    }
    
    sleep 3;
}

관련 정보