Comment gérer plusieurs périphériques de lecture audio sous Windows Vista / 7?

33

J'ai des haut-parleurs (entrée audio) et des écouteurs (un casque USB avec sa propre carte son) connectés à mon ordinateur de bureau. Sous Windows 7, je peux cliquer avec le bouton droit de la souris sur le mélangeur audio , sélectionner Périphériques de lecture et basculer entre ces périphériques.

Existe-t-il un moyen plus simple, peut-être un raccourci clavier, qui permettrait de basculer plus facilement? Je travaille dans un espace partagé où, parfois, je veux des écouteurs pour ne pas gêner les autres personnes, mais à d'autres moments, les haut-parleurs sont acceptables. Je veux pouvoir basculer rapidement. Dans un monde idéal, la solution à ma question fonctionnerait également sous Vista.

Brian Lyttle
la source

Réponses:

19

La solution à tous vos problèmes d’automatisation Windows: AutoIt !

Mettez cette AutoIt et compilez-la

;-----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)

Créez maintenant un raccourci et, dans la cible, indiquez le chemin d'accès à l'exécutable compilé. En guise d’argument, insérez le numéro du périphérique audio dans la liste vers laquelle vous souhaitez basculer. (pour basculer vers le premier élément de la liste, mettez 1, le deuxième élément de la liste, mettez 2, etc.). Si vous souhaitez un raccourci clavier, utilisez le champ Raccourci dans la fenêtre des propriétés du raccourci.

J'avais cherché quelque chose à faire ce que vous vouliez faire et avais trouvé qu'il n'y avait aucune manière programmatique de changer de périphérique audio dans Vista / 7. Ce n’est tout simplement pas quelque chose que Microsoft a décidé que les programmeurs devaient faire, alors je crée ce script pour automatiser le processus. Ce n'est pas le meilleur car il fait apparaître la fenêtre pour changer de périphérique (nécessaire), mais cela permet de créer des raccourcis pour changer le périphérique de sortie de votre son.

Dan Walker
la source
2
C'est peut-être la réponse la plus utile que je n'ai pas encore trouvée sur tout ce site! Merci encore pour cela ....
JL.
Très génial, fonctionne très bien.
WerkkreW
9

Default Audio Changer est actuellement la meilleure solution, à mon avis.

Il utilise des appels système non documentés au lieu de simuler des pressions au clavier, ce qui signifie que vous pouvez l'utiliser sans souci dans des applications plein écran.

cptloop
la source
Excellente idée, mais non seulement ça n'a pas fonctionné, maintenant mon casque n'est pas détecté du tout lorsqu'il est branché. :(
Nick Spreitzer le
2
Hautement recommandé! 10 fois mieux qu'un script AutoIt. Devrait être la réponse acceptée, vraiment.
Otiel
2
Les fichiers d'installation sont ici: sourceforge.net/projects/defaultaudiocha/files Wow, c'est probablement la solution de commutation de périphériques de lecture la plus propre que j'ai jamais vue! +1
Geo
4

@Dan Walker Belle solution, mais pas parfaite;)

Ce script utilise l'existence d'un fichier pour effectuer une bascule. Vous pouvez donc utiliser le même raccourci pour basculer entre les périphériques de lecture. C'est juste une simple édition:

;-----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
la source
Nice, j'aime le
basculement
3

Googlé cela pendant un moment et la seule chose qui a fait le tour pour moi est un script de AutoHotKey, le seul souhait que j'ai est de faire cela en arrière-plan. Voici le script:

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

Vous pouvez le changer pour répondre à vos besoins


la source
Cela a fonctionné pour moi, mais je devais utiliser SendInput {Down}au lieu de ControlSend,SysListView321,{Down}. J'ai également dû changer le nombre de {Downs} pour correspondre à mes périphériques audio.
Iain
3

La solution de fakt fonctionne à merveille. Voici un petit script pour autohotkey qui sélectionne le premier périphérique audio par défaut lorsque vous appuyez sur "F4" et le second lorsque vous appuyez sur "F3". Cette version fonctionne avec toutes les versions de Windows. Testé sous 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

la source
2

@cptloop Le changeur audio par défaut était plutôt bon, mais de manière gênante, il ne définirait pas un périphérique comme périphérique de communication par défaut après l'avoir défini comme périphérique par défaut.

Cela m'a amené à trouver Audio Switcher , qui possède plusieurs fonctionnalités supplémentaires:

  • Prise en charge de la commutation des appareils d'enregistrement
  • Prise en charge de plusieurs raccourcis clavier
  • Double commutateur (permuter les périphériques par défaut et de communication)
  • Et plus!

La seule chose que je n'aime pas, c'est que cela ne vous permet pas d'utiliser un seul raccourci clavier pour basculer entre deux périphériques, chacun doit être configuré avec son propre raccourci clavier. Cela dit, la v2.0 est en développement et promet des améliorations de fonctionnalités, ainsi que la prise en charge des plugins. Ils ont également publié l'API sous-jacente, il est donc possible de créer votre propre solution sur mesure.

Edit: Selon xenolightning / AudioSwitcher_v1 # 607 , la possibilité de basculer / cycle des périphériques est déjà implémentée dans la version 2.0.

Dave Hughes
la source
0

Un autre bon programme pour ce faire est Audio Router. C'est un programme libre (GPL) avec les versions de système d'exploitation 64 bits et 32 ​​bits. Voici le lien GitHub du programme:

Routeur Audio

Voici un simple GIF de la façon dont il est utilisé:

entrez la description de l'image ici

utilisateur2597747
la source