
힌지업 마이크가 있는 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;
}