Cambiar automáticamente el dispositivo de entrada de sonido predeterminado

Cambiar automáticamente el dispositivo de entrada de sonido predeterminado

Compré un micrófono nuevo que está conectado a mi escritorio, además de mis auriculares inalámbricos Logitech G930 con micrófono con bisagra.

Cuando me siento en mi escritorio, me gustaría que mi micrófono fuera el dispositivo predeterminado. Una vez que dejo mi escritorio y coloco el micrófono del auricular, me gustaría que mi dispositivo de entrada predeterminado cambie a ese.

Cuando silencio/coloco físicamente mis auriculares, aparentemente envía algún tipo de evento a mi sistema operativo, ya que sabe que está silenciado y lo muestra, por ejemplo, aquí:

[ imagen]

Investigué un poco y encontré software comonirsoft, pero a mi modo de ver, no hay forma de obtener el estado de silencio. Aparentemente se puede hacer con C++ CoreAudio. Preferiría no descargar un compilador de 3 GB y Visual Studio solo por diez líneas.

¿Existen enlaces CoreAudio para otros lenguajes como Python o Node.js/Alternative Tools para lograr lo que necesito?

Respuesta1

Finalmente pude resolver esto usandohttps://github.com/frgnca/AudioDeviceCmdlets/dentro de un script de 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;
}

información relacionada