Cambiar automáticamente entre monitores y auriculares

Cambiar automáticamente entre monitores y auriculares

Mi portátil:

  • ejecuta Windows 10 (versión 20H2)
  • tiene parlantes incorporados
  • tiene puerto jack para auriculares
  • Suele estar conectado a un monitor con altavoces.

Quiero que venga el sonido:

  • desde auriculares, si están conectados
  • desde el monitor, si está conectado y los auriculares no están
  • desde los altavoces incorporados, si no hay nada más conectado

¿Hay alguna manera de hacer que el dispositivo de reproducción cambie automáticamente de acuerdo con esto?


¿Por qué esto no es trivial?

Creo que esto no se puede lograr con una simple configuración de salida de audio predeterminada, porque así es como se ven los dispositivos de salida de audio: Dispositivos de reproducción

Mi prioridad de reproducción deseada es 1. Headphones, 2. Monitor, 3. Built-in speaker. Sólo hay un dispositivo de reproducción tanto para el altavoz incorporado del portátil como para los auriculares (el segundo dispositivo es el monitor), por lo que la prioridad no se puede establecer simplemente para cada uno de ellos individualmente.

Respuesta1

El siguiente script no se ha probado y ciertamente no en su entorno, pero podría resultar útil.

Utilizo aquí tres herramientas:

Primero descargue las herramientas y descomprímalas en sus carpetas.

Luego ejecute AEPC sin parámetros mientras los tres dispositivos están conectados y aparecerá una lista de sus nombres. Anote los nombres, o al menos una subcadena de identificación dentro del nombre. En este punto, no sé si incluirá el "Altavoz/Auriculares" como uno o dos dispositivos. Si es un dispositivo, supongo que los auriculares tienen prioridad automáticamente y es necesario acortar el script. Mi script asume tres dispositivos, pero sus nombres son sólo una suposición hasta que ejecute AEPC.

Después de instalar AutoHotKey, coloque el texto a continuación en un .ahkarchivo y haga doble clic en él para probar. Puede detener el script haciendo clic derecho en el ícono H verde en la barra de bandeja y seleccionando Salir. Para que se ejecute al iniciar sesión, colóquelo en el grupo Inicio en C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Verifique y reemplace debajo las cuerdas utilizadas en el comandos findtr:

#Persistent                         ; prevents the script from exiting when it reaches 'return'

SetTimer, detectDevices, 1000       ; check every second
return

detectDevices:                      ; this is the timer routine
RunWait,  %ComSpec% /c "C:\Temp\AudioEndPointController\Release\EndPointController.exe" | findstr Headphone
if (%ErrorLevel% = 0) {             ; found headphone
    Run, "C:\Program Files\Nirsoft Package\NirSoft\x64\nircmd.exe" setdefaultsounddevice Headphones
} else {
    RunWait,  %ComSpec% /c "C:\Temp\AudioEndPointController\Release\EndPointController.exe" | findstr Monitor-device
    if (%ErrorLevel% = 0) {         ; found monitor device
        Run, "C:\Program Files\Nirsoft Package\NirSoft\x64\nircmd.exe" setdefaultsounddevice Monitor-name
    } else {                        ; only speaker is left
        Run, "C:\Program Files\Nirsoft Package\NirSoft\x64\nircmd.exe" setdefaultsounddevice Speaker
    }
}
Return                               ; end of timer routine

Respuesta2

Esto es posible utilizando el programador de tareas integrado de Windows. Cada vez que cambia algo en el nivel de hardware de su PC, se activa un evento en el registro de Windows. El programador de tareas ya escucha este registro, por lo que no debería notar una diferencia en el rendimiento si simplemente busca otro evento. encontréesta entrada del foroque describe un problema similar, ynosotros noruegaDio una muy buena explicación de cómo solucionarlo. Con esta solución, puede crear una tarea que se active cuando conecte su monitor y luego inicie una secuencia de comandos que cambie el dispositivo de audio. Sin una investigación más profunda, no encontré una manera de hacer esto con cmd o powershell, pero creo que puedes encontrar algo si le dedicas más tiempo. Lo único que encontré esesta publicaciónen StackOverFlow, donde se presentan varias soluciones, algunas de las cuales utilizan AutoHotKey, un lenguaje de programación muy simple.

Espero que esto ayude, tal vez encuentre más en el futuro, este es un problema que también encontré, luego actualizaré mi respuesta.

Respuesta3

Personalmente, mi intuición me dice que si sigues el camino del software únicamente, es posible que tengas que luchar con esto para siempre.

Creo que el software que configura automáticamente su dispositivo de salida es posible, pero no creo que haya ningún software disponible que haga lo que usted desea, y si logra que una solución de software funcione, creo que desperdiciará mucho tiempo. tiempo para configurarlo y mantenerlo. Creo que deberías probar una solución de hardware que sea más confiable y fácilmente configurable. Aquí hay algunas opciones:

  1. Casi todas las pantallas tienen un conector de entrada de audio; y muchos también tienen un conector de salida de audio. Si su monitor tiene un conector de salida, le recomiendo que configure su pantalla como audio predeterminado y conecte sus auriculares a la salida de audio de la pantalla. Entonces, cuando los auriculares están conectados, obtienes sonido de los auriculares, los desconectas y obtendrás el sonido de la pantalla, y desconectas la pantalla y obtendrás el sonido de la computadora portátil. (verifique la configuración de la pantalla, es posible que tenga opciones sobre si los parlantes de la pantalla aún reproducen cuando un dispositivo externo está conectado)

  2. Opción similar, pero obtenga un cable de extensión de audio, configure su computadora portátil como predeterminada y conecte el cable de su computadora portátil al conector de entrada de la pantalla. Cuando desee utilizar auriculares, simplemente desconecte la extensión de su computadora portátil y conecte los auriculares.

  3. La segunda opción que recomendaría es conseguir un interruptor de audio o una tarjeta de sonido externa. ¿Crees que la calidad del sonido puede ser importante para ti? Si es así, es posible que desees comprar una buena tarjeta de sonido en algún momento para obtener una mayor calidad de sonido. Hazlo ahora y resuelve ambos problemas a la vez. Todo lo que necesitas es al menos 2 salidas, con un interruptor manual para seleccionar las salidas que elijas. Hay toneladas de opciones disponibles, o un interruptor de audio es mucho más barato, pero es solo eso: una pieza de hardware con algunos interruptores y botones manuales.

Ojalá pudiera ser de más ayuda, pero hice algunas pruebas en mi PC y es el mismo problema: intentar cambiar automáticamente la salida por completo cuando conectas o desconectas cosas es una molestia. Si fuera yo, sé que elegiría el hardware; puede que no sea visualmente bonito, pero creo que es la opción más confiable que tienes.

información relacionada