¿Cómo administro múltiples dispositivos de reproducción de audio en Windows Vista / 7?

33

Tengo altavoces (entrada de audio) y auriculares (auriculares USB con su propia tarjeta de sonido) conectados a mi computadora de escritorio. En Windows 7, puedo hacer clic derecho en el Mezclador de audio y seleccionar Dispositivos de reproducción y alternar entre estos dispositivos.

¿Hay una manera más fácil, tal vez un atajo de teclado, que haría más fácil alternar? Estoy trabajando en un espacio compartido donde a veces quiero auriculares para evitar molestar a otras personas, pero otras veces los altavoces están bien. Quiero poder alternar rápidamente. En un mundo ideal, la solución a mi pregunta también funcionaría en Vista.

Brian Lyttle
fuente

Respuestas:

19

La solución a todos sus molestos problemas de automatización de Windows: AutoIt !

Pon este AutoIt y compilalo

;-----Configuration-----
;The title of the sound config window.
Dim $ConfigWindowTitle = "Sound"
;-----End of configuration----

Dim $ItemNumber = 1
If $CmdLine[0] >= 1 Then ;If we have a parameter...
    $ItemNumber = $CmdLine[1] ;...we should press the button the specified number of times.
EndIf

Run("control mmsys.cpl") ;Run the sound control applet and hide it.

WinWaitActive($ConfigWindowTitle) ;Wait for it to be active before sending keystrokes.

Send("{TAB}{TAB}{TAB}{TAB}") ;Put the focus on the list

For $i = 1 to $ItemNumber Step 1
    Send("{DOWN}")
Next

Send("!s") ;Press Alt + S to set the selected device as the default.
WinClose($ConfigWindowTitle)

Ahora cree un acceso directo, y en el Destino coloque la ruta al ejecutable compilado. Para una discusión, coloque el número del dispositivo de sonido en la lista a la que desea cambiar. (para cambiar al elemento superior de la lista, coloque 1, el segundo elemento de la lista, coloque 2, etc.). Si desea un método abreviado de teclado, use el campo Tecla de método abreviado en la ventana de propiedades del método abreviado.

Había estado buscando algo para hacer lo que quería hacer, y descubrí que no hay una forma programática de cambiar los dispositivos de audio en Vista / 7. Simplemente no es algo que Microsoft haya decidido que los programadores deben hacer, así que creo este script para automatizar el proceso. No es lo mejor, ya que aparece la ventana emergente para cambiar el dispositivo (necesario), pero hace posible crear accesos directos para cambiar el dispositivo de salida para su sonido.

Dan Walker
fuente
2
¡Esta es quizás la respuesta más útil que aún no he encontrado en todo este sitio! Gracias de nuevo por esto ...
JL.
Muy impresionante, funciona muy bien.
WerkkreW
9

El cambiador de audio predeterminado es actualmente la mejor solución, en mi opinión.

Utiliza llamadas de sistema no documentadas en lugar de simular las pulsaciones del teclado, lo que significa que puede usarlo en aplicaciones de pantalla completa sin preocupaciones.

cptloop
fuente
Gran idea, pero no solo no funcionó, ahora mis auriculares no se detectan cuando están enchufados. :(
Nick Spreitzer
2
¡Muy recomendable! 10 veces mejor que un script AutoIt. Debería ser la respuesta aceptada, de verdad.
Otiel
2
Los archivos de instalación están aquí: sourceforge.net/projects/defaultaudiocha/files ¡ Wow, esta es probablemente la solución de conmutación de dispositivos de reproducción más limpia que he visto! +1
Geo
4

@Dan Walker Buena solución, pero no perfecta;)

Este script utiliza la existencia de un archivo para realizar una alternancia, por lo que puede usar el mismo acceso directo para cambiar entre dispositivos de reproducción. Es solo una edición simple:

;-----Configuration-----
;The title of the sound config window.
Dim $ConfigWindowTitle = "Sound"
;-----End of configuration----

Dim $ItemNumber = 1 ; The first itme in the audio list

If FileExists ("a") Then; Use the existence of a file to know if we should toggle
    FileDelete("a")
    $ItemNumber = 3 ; The audio playback device you want to toggle to
Else
    FileOpen("a", 1)
    FileClose("a")
EndIf

Run("control mmsys.cpl") ;Run the sound control applet and hide it.

WinWaitActive($ConfigWindowTitle) ;Wait for it to be active before sending keystrokes.

Send("{TAB}{TAB}{TAB}{TAB}") ;Put the focus on the list

For $i = 1 to $ItemNumber Step 1
    Send("{DOWN}")
Next

Send("!s") ;Press Alt + S to set the selected device as the default.
WinClose($ConfigWindowTitle)
Andy Ray
fuente
Agradable, me gusta la alternancia
Chaulky
3

Busqué en Google esto por un tiempo y lo único que me funcionó fue un script de AutoHotKey, el único deseo que tengo es que esto se haga en segundo plano. Aquí está el script:

Run, mmsys.cpl
WinWait,Sound
ControlSend,SysListView321,{Down}
ControlClick,&Set Default
ControlClick,OK

Puede cambiarlo para satisfacer sus necesidades.


fuente
Esto funcionó para mí, pero tuve que usar en SendInput {Down}lugar de ControlSend,SysListView321,{Down}. También tuve que cambiar el número de {Downs} para que coincida con mis dispositivos de audio.
Iain
3

La solución de fakt funciona a las mil maravillas. Aquí un pequeño script para autohotkey que selecciona el primer dispositivo de audio por defecto cuando presiona "F4" y el segundo cuando presiona "F3". Esta versión funciona con todas las versiones de Windows. Probado con Win 7 64.

F3::
Run, mmsys.cpl
WinWaitActive,Sound
ControlSend,SysListView321,{Down}
ControlSend,SysListView321,{Down}
Sleep, 50
ControlClick,Button2
ControlClick,OK
return

F4::
Run, mmsys.cpl
WinWaitActive,Sound
ControlSend,SysListView321,{Down}
Sleep, 50
ControlClick,Button2
ControlClick,OK
return

fuente
2

@cptloop El cambiador de audio predeterminado era bastante bueno, pero molestamente no configuraría un dispositivo como el dispositivo de comunicaciones predeterminado después de haberlo establecido como el dispositivo predeterminado.

Eso me llevó a encontrar Audio Switcher , que tiene varias características adicionales:

  • Soporte para cambiar dispositivos de grabación
  • Soporte para múltiples teclas de acceso rápido
  • Interruptor dual (intercambie los dispositivos predeterminados y de comunicaciones)
  • ¡Y más!

Lo único que no me gusta es que no le permite usar una sola tecla de acceso rápido para alternar entre dos dispositivos, cada uno debe configurarse con su propia tecla de acceso rápido. Dicho esto, v2.0 está en desarrollo y promete algunas mejoras de características, así como soporte de complementos. También han publicado la API subyacente, por lo que es posible crear su propia solución personalizada.

Editar: Según xenolightning / AudioSwitcher_v1 # 607 , la capacidad de alternar / ciclar dispositivos ya está implementada en v2.0.

Dave Hughes
fuente
0

Otro buen programa para hacer esto es el enrutador de audio. Es un programa gratuito (GPL) con versiones de SO de 64 bits y 32 bits. Aquí está el enlace de GitHub del programa:

Enrutador de audio

Aquí hay un GIF simple de cómo se usa:

ingrese la descripción de la imagen aquí

usuario2597747
fuente