Wie verwalte ich mehrere Audiowiedergabegeräte unter Windows Vista / 7?

33

Ich habe Lautsprecher (Audioeingang) und Kopfhörer (USB-Headset mit eigener Soundkarte) an meinen Desktop-Computer angeschlossen. Unter Windows 7 kann ich mit der rechten Maustaste auf den Audiomixer klicken , Wiedergabegeräte auswählen und zwischen diesen Geräten wechseln.

Gibt es einen einfacheren Weg, vielleicht eine Tastenkombination, die das Umschalten erleichtert? Ich arbeite in einem gemeinsamen Raum, in dem ich manchmal möchte, dass Kopfhörer andere Leute nicht stören, aber zu anderen Zeiten sind die Lautsprecher in Ordnung. Ich möchte schnell umschalten können. In einer idealen Welt würde die Lösung meiner Frage auch unter Vista funktionieren.

Brian Lyttle
quelle

Antworten:

19

Die Lösung für alle Ihre quälenden Windows-Automatisierungsprobleme: AutoIt !

Setzen Sie dieses AutoIt und kompilieren Sie es

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

Erstellen Sie nun eine Verknüpfung und geben Sie im Ziel den Pfad zur kompilierten ausführbaren Datei an. Geben Sie als Argument die Nummer des Audiogeräts in die Liste ein, zu der Sie wechseln möchten. (Um zum obersten Element in der Liste zu wechseln, geben Sie 1, das zweite Element in der Liste, geben Sie 2 usw. ein.) Wenn Sie eine Tastenkombination möchten, verwenden Sie das Feld Tastenkombination im Eigenschaftenfenster der Verknüpfung.

Ich habe nach einer Möglichkeit gesucht, um das zu tun, was Sie wollten, und festgestellt, dass es in Vista / 7 keine programmgesteuerte Möglichkeit gibt, Audiogeräte umzuschalten. Microsoft hat nicht entschieden, dass Programmierer dies tun müssen. Deshalb erstelle ich dieses Skript, um den Prozess zu automatisieren. Es ist nicht das Beste, da es das Fenster öffnet, um das Gerät zu ändern (erforderlich), aber es ermöglicht das Erstellen von Verknüpfungen, um das Ausgabegerät für Ihren Sound zu ändern.

Dan Walker
quelle
2
Dies ist vielleicht die nützlichste Antwort, die ich bisher auf dieser ganzen Site gefunden habe! Nochmals
vielen
Sehr genial, funktioniert super.
WerkkreW
9

Default Audio Changer ist meiner Meinung nach derzeit die beste Lösung.

Es werden undokumentierte Systemaufrufe verwendet, anstatt Tastatureingaben zu simulieren, sodass Sie es ohne Bedenken in Vollbildanwendungen verwenden können.

cptloop
quelle
Tolle Idee, aber es hat nicht nur nicht funktioniert, jetzt wird mein Headset überhaupt nicht erkannt, wenn es eingesteckt ist. :(
Nick Spreitzer
2
Sehr empfehlenswert! 10x besser als ein AutoIt-Skript. Sollte die akzeptierte Antwort wirklich sein.
Otiel
2
Setup-Dateien finden Sie hier: sourceforge.net/projects/defaultaudiocha/files Wow, dies ist wahrscheinlich die sauberste Switch-Lösung für Wiedergabegeräte, die ich je gesehen habe! +1
Geo
4

@Dan Walker Schöne Lösung, aber nicht perfekt;)

In diesem Skript wird das Vorhandensein einer Datei verwendet, um ein Umschalten tatsächlich durchzuführen, sodass Sie dieselbe Verknüpfung verwenden können, um zwischen Wiedergabegeräten zu wechseln. Es ist nur eine einfache Bearbeitung:

;-----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
quelle
Schön, ich mag das Umschalten
Chaulky
3

Ich habe das eine Weile gegoogelt und das einzige, was den Trick für mich getan hat, ist ein Skript von AutoHotKey. Der einzige Wunsch, den ich habe, ist, dass dies im Hintergrund gemacht wird. Hier ist das Skript:

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

Sie können es an Ihre Bedürfnisse anpassen


quelle
Das hat bei mir geklappt, aber ich musste SendInput {Down}stattdessen verwenden ControlSend,SysListView321,{Down}. Ich musste auch die Anzahl der {Downs} ändern, um sie an meine Audiogeräte anzupassen.
Iain
3

Die Lösung von fakt wirkt wie ein Zauber. Hier ein kleines Skript für Autohotkey, das das erste Audiogerät als Standard auswählt, wenn Sie "F4" und das zweite, wenn Sie "F3" drücken. Diese Version funktioniert mit allen Windows-Versionen. Getestet mit 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

quelle
2

@cptloop Default Audio Changer war ziemlich gut, würde aber ärgerlicherweise kein Gerät als Standardkommunikationsgerät festlegen, nachdem es als Standardgerät festgelegt wurde.

Das hat mich dazu gebracht, Audio Switcher zu finden , der mehrere zusätzliche Funktionen hat:

  • Unterstützung für das Umschalten von Aufnahmegeräten
  • Unterstützung für mehrere Hotkeys
  • Dual-Switch (Standard- und Kommunikationsgeräte tauschen)
  • Und mehr!

Das einzige, was mir nicht gefällt, ist, dass Sie keinen einzigen Hotkey zum Umschalten zwischen zwei Geräten verwenden können. Jeder muss mit einem eigenen Hotkey konfiguriert werden. Allerdings befindet sich v2.0 in der Entwicklung und verspricht einige Funktionsverbesserungen sowie die Unterstützung von Plugins. Sie haben auch die zugrunde liegende API veröffentlicht, sodass es möglich ist, Ihre eigene maßgeschneiderte Lösung zu erstellen.

Bearbeiten: Gemäß xenolightning / AudioSwitcher_v1 # 607 ist die Möglichkeit zum Umschalten / Wechseln von Geräten bereits in Version 2.0 implementiert.

Dave Hughes
quelle
0

Ein weiteres gutes Programm dafür ist Audio Router. Es ist ein kostenloses Programm (GPL) mit 64-Bit- und 32-Bit-Betriebssystemversionen. Hier ist der GitHub-Link des Programms:

Audio Router

Hier ist ein einfaches GIF, wie es verwendet wird:

Bildbeschreibung hier eingeben

user2597747
quelle