Automatisches Umschalten zwischen Monitorlautsprechern und Kopfhörern

Automatisches Umschalten zwischen Monitorlautsprechern und Kopfhörern

Mein Laptop:

  • läuft unter Windows 10 (Version 20H2)
  • verfügt über eingebaute Lautsprecher
  • verfügt über einen Klinkenanschluss für Kopfhörer
  • wird normalerweise an einen Monitor mit Lautsprechern angeschlossen

Ich möchte, dass der Ton kommt:

  • über Kopfhörer, sofern diese angeschlossen sind
  • vom Monitor, wenn dieser angeschlossen ist und Kopfhörer nicht
  • über eingebaute Lautsprecher, wenn nichts anderes angeschlossen ist

Gibt es eine Möglichkeit, das Wiedergabegerät entsprechend automatisch umschalten zu lassen?


Warum das nicht trivial ist

Ich denke, dass dies mit einer einfachen Standardkonfiguration der Audioausgabe nicht erreicht werden kann, da die Audioausgabegeräte folgendermaßen aussehen: Abspielgeräte

Meine gewünschte Wiedergabepriorität ist 1. Headphones, 2. Monitor, 3. Built-in speaker. Es gibt nur ein Wiedergabegerät für den eingebauten Lautsprecher des Laptops und die Kopfhörer (das zweite Gerät ist der Monitor), daher kann die Priorität nicht einfach für jedes von ihnen einzeln eingestellt werden.

Antwort1

Das folgende Skript wurde nicht getestet und schon gar nicht in Ihrer Umgebung, aber es könnte helfen.

Ich verwende hierbei drei Tools:

Laden Sie zunächst die Tools herunter und entpacken Sie diese in ihre Ordner.

Führen Sie dann AEPC ohne Parameter aus, während alle drei Geräte angeschlossen sind, und es werden ihre Namen aufgelistet. Notieren Sie sich die Namen oder zumindest eine identifizierende Teilzeichenfolge innerhalb des Namens. An diesem Punkt weiß ich nicht, ob „Lautsprecher/Kopfhörer“ als ein oder zwei Geräte aufgelistet werden. Wenn es ein Gerät ist, gehe ich davon aus, dass der Kopfhörer automatisch Vorrang hat und das Skript gekürzt werden muss. Mein Skript geht von drei Geräten aus, aber ihre Namen sind nur eine Vermutung, bis Sie AEPC ausführen.

Nachdem Sie AutoHotKey installiert haben, fügen Sie den unten stehenden Text in eine .ahkDatei ein und doppelklicken Sie darauf, um es zu testen. Sie können das Skript stoppen, indem Sie mit der rechten Maustaste auf das grüne H-Symbol in der Taskleiste klicken und „Beenden“ wählen. Um es beim Anmelden auszuführen, platzieren Sie es in der Autostart-Gruppe unter C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Überprüfen und ersetzen Sie unten die Zeichenfolgen, die in der findstr-Befehle:

#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

Antwort2

Dies ist mit dem in Windows integrierten Taskplaner möglich. Jedes Mal, wenn sich etwas auf der Hardwareebene Ihres PCs ändert, wird ein Ereignis im Windows-Protokoll ausgelöst. Der Taskplaner überwacht dieses Protokoll bereits, sodass Sie keinen Leistungsunterschied feststellen sollten, wenn Sie nur nach einem anderen Ereignis suchen. Ich habe Folgendes gefundendieser Forumseintragdas ein ähnliches Problem beschreibt, undussnorwegengab eine sehr gute Erklärung, wie man es lösen kann. Mit dieser Lösung können Sie eine Aufgabe erstellen, die ausgelöst wird, wenn Sie Ihren Monitor anschließen, und dann ein Skript startet, das das Audiogerät ändert. Ohne tiefere Recherche habe ich keine Möglichkeit gefunden, dies mit cmd oder Powershell zu tun, aber ich denke, dass Sie etwas finden können, wenn Sie mehr Zeit darauf verwenden. Das einzige, was ich gefunden habe, istdieser Beitragauf StackOverFlow, wo mehrere Lösungen vorgestellt werden, von denen einige AutoHotKey verwenden, eine sehr einfache Skriptsprache.

Ich hoffe, das hilft. Vielleicht finde ich in Zukunft noch mehr. Auf dieses Problem bin ich auch gestoßen. Dann werde ich meine Antwort aktualisieren.

Antwort3

Mein Bauchgefühl sagt mir, dass Sie, wenn Sie sich ausschließlich für die Software entscheiden, möglicherweise ewig mit diesem Problem zu kämpfen haben.

Ich denke, dass Software, die Ihr Ausgabegerät automatisch konfiguriert, möglich ist, aber ich glaube nicht, dass es eine einzige Software gibt, die das tut, was Sie wollen, und wenn Sie eine funktionierende Softwarelösung haben, werden Sie wahrscheinlich viel Zeit damit verschwenden, sie einzurichten und zu warten. Ich denke, Sie sollten eine Hardwarelösung ausprobieren, die zuverlässiger und einfacher zu konfigurieren ist. Hier sind einige Optionen:

  1. Fast alle Bildschirme haben eine Audio-Eingangsbuchse und viele haben auch eine Audio-Ausgangsbuchse. Wenn Ihr Monitor eine Ausgangsbuchse hat, empfehle ich Ihnen, Ihren Bildschirm als Standardaudio einzustellen und Ihre Kopfhörer an den Audio-Ausgang des Bildschirms anzuschließen. Wenn Ihre Kopfhörer also eingesteckt sind, erhalten Sie Ton über die Kopfhörer, ziehen Sie den Stecker heraus und Sie erhalten Ton vom Bildschirm, ziehen Sie den Stecker heraus und Sie erhalten Ton vom Laptop. (Überprüfen Sie die Bildschirmeinstellungen, Sie haben möglicherweise Optionen, ob die Bildschirmlautsprecher weiterhin funktionieren, wenn ein externes Gerät angeschlossen ist)

  2. Ähnliche Option, aber besorgen Sie sich ein Audio-Verlängerungskabel, stellen Sie Ihren Laptop als Standard ein und stecken Sie das Kabel Ihres Laptops in die Bildschirm-Eingangsbuchse. Wenn Sie Kopfhörer verwenden möchten, ziehen Sie einfach das Verlängerungskabel von Ihrem Laptop ab und stecken Sie Kopfhörer ein.

  3. Die zweite Option, die ich empfehlen würde, ist ein Audio-Switch oder eine externe Soundkarte. Sie haben das Gefühl, dass Ihnen die Klangqualität wichtig sein könnte? Wenn ja, sollten Sie sich irgendwann eine gute Soundkarte zulegen, um die Klangqualität zu verbessern. Tun Sie es jetzt und lösen Sie beide Probleme auf einmal. Sie benötigen lediglich mindestens zwei Ausgänge mit einem manuellen Schalter, um die gewünschten Ausgänge auszuwählen. Es gibt unzählige Optionen, oder ein Audio-Switch ist viel billiger, aber genau das ist er – ein Stück Hardware mit einigen manuellen Schaltern und Tasten.

Ich wünschte, ich könnte Ihnen mehr helfen, aber ich habe einige Tests auf meinem PC durchgeführt und es ist das gleiche Problem – der Versuch, die Ausgabe automatisch vollständig zu ändern, wenn Sie Dinge anschließen/entfernen, ist mühsam. Wenn es nach mir ginge, würde ich den Hardware-Weg wählen – sieht vielleicht nicht schön aus, aber ich denke, das ist die zuverlässigste Option, die Sie haben.

verwandte Informationen