Jak zarządzać wieloma urządzeniami do odtwarzania dźwięku w systemie Windows Vista / 7?

33

Mam głośniki (wejście audio) i słuchawki (zestaw słuchawkowy USB z własną kartą dźwiękową) podłączone do mojego komputera stacjonarnego. W systemie Windows 7 mogę kliknąć Mikser audio prawym przyciskiem myszy, wybrać Urządzenia odtwarzające i przełączać się między tymi urządzeniami.

Czy istnieje łatwiejszy sposób, na przykład skrót klawiaturowy, który ułatwiłby przełączanie? Pracuję we wspólnej przestrzeni, w której czasami chcę, aby słuchawki nie drażniły innych ludzi, ale czasem głośniki są w porządku. Chcę móc szybko się przełączać. W idealnym świecie rozwiązanie mojego pytania działałoby również w Vistę.

Brian Lyttle
źródło

Odpowiedzi:

19

Rozwiązanie wszystkich dokuczliwych problemów z automatyzacją systemu Windows: AutoIt !

Umieść ten AutoIt i skompiluj go

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

Teraz utwórz skrót, a następnie w polu Cel podaj ścieżkę do skompilowanego pliku wykonywalnego. Jako argument umieść numer urządzenia dźwiękowego na liście, na którą chcesz się przełączyć. (aby przejść do najwyższej pozycji na liście, umieść 1, drugą pozycję na liście, umieść 2 itd.). Jeśli potrzebujesz skrótu klawiaturowego, użyj pola Klawisz skrótu w oknie właściwości skrótu.

Szukałem czegoś, co chcesz zrobić, i odkryłem, że nie ma programowego sposobu przełączania urządzeń audio w Vista / 7. Po prostu nie jest to coś, co Microsoft zdecydował, że programiści muszą zrobić, więc tworzę ten skrypt, aby zautomatyzować ten proces. Nie jest to najlepsze, ponieważ wyskakuje okno, aby zmienić urządzenie (konieczne), ale umożliwia tworzenie skrótów do zmiany urządzenia wyjściowego dla twojego dźwięku.

Dan Walker
źródło
2
Jest to chyba najbardziej przydatna odpowiedź, jaką jeszcze znalazłem na tej stronie! Jeszcze raz dziękuję za to ....
JL.
Bardzo niesamowite, działa świetnie.
WerkkreW
9

Domyślnie , moim zdaniem, domyślny zmieniacz audio jest obecnie najlepszym rozwiązaniem.

Używa nieudokumentowanych wywołań systemowych zamiast symulować naciskanie klawiatury, co oznacza, że ​​można go używać w aplikacjach pełnoekranowych bez obaw.

Cptloop
źródło
Świetny pomysł, ale nie tylko nie działał, ale teraz mój zestaw słuchawkowy nie jest w ogóle wykrywany po podłączeniu. :(
Nick Spreitzer
2
Wysoce polecany! 10 razy lepszy niż skrypt AutoIt. Naprawdę powinna być zaakceptowana odpowiedź.
Otiel
2
Pliki instalacyjne są tutaj: sourceforge.net/projects/defaultaudiocha/files Wow, to prawdopodobnie najczystsze rozwiązanie do przełączania urządzeń odtwarzających, jakie kiedykolwiek widziałem !! +1
Geo
4

@Dan Walker Ładne rozwiązanie, ale nie idealne;)

Skrypt ten wykorzystuje plik do faktycznego przełączenia, dzięki czemu można używać tego samego skrótu do przełączania między urządzeniami odtwarzającymi. To tylko prosta edycja:

;-----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
źródło
Fajnie, podoba mi się przełączanie
Chaulky
3

Przez pewien czas googlowałem i jedyną rzeczą, która mi pomogła, jest skrypt z AutoHotKey, jedyne życzenie, jakie mam, to zrobienie tego w tle .. Oto skrypt:

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

Możesz to zmienić, aby spełnić Twoje potrzeby


źródło
To działało dla mnie, ale musiałem użyć SendInput {Down}zamiast ControlSend,SysListView321,{Down}. Musiałem także zmienić liczbę {Downs}, aby pasowały do ​​moich urządzeń audio.
Iain
3

rozwiązanie fakt działa jak urok. Oto mały skrypt dla auto-klucza, który wybiera pierwsze urządzenie audio jako domyślne po naciśnięciu „F4”, a drugie po naciśnięciu „F3”. Ta wersja działa ze wszystkimi wersjami systemu Windows. Testowane przy użyciu 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

źródło
2

@cptloop Domyślny zmieniacz audio był całkiem niezły, ale irytująco nie ustawił urządzenia jako domyślnego urządzenia komunikacyjnego po ustawieniu go jako urządzenia domyślnego.

To doprowadziło mnie do znalezienia Audio Switchera , który ma kilka dodatkowych funkcji:

  • Obsługa przełączania urządzeń nagrywających
  • Obsługa wielu skrótów klawiszowych
  • Podwójny przełącznik (zamień domyślne i urządzenia komunikacyjne)
  • I więcej!

Jedyne, co mi się nie podoba, to to, że nie pozwala na używanie jednego skrótu do przełączania między dwoma urządzeniami, każde musi być skonfigurowane z własnym skrótem. To powiedziawszy, v2.0 jest w fazie rozwoju i obiecuje pewne ulepszenia funkcji, a także obsługę wtyczek. Opublikowali również podstawowy interfejs API, dzięki czemu można stworzyć własne, dostosowane do potrzeb rozwiązanie.

Edycja: Zgodnie z Xenolightning / AudioSwitcher_v1 # 607 , zdolność do przełączania / cyklowania urządzeń jest już zaimplementowana w wersji 2.0.

Dave Hughes
źródło
0

Innym dobrym programem do tego jest Audio Router. Jest to darmowy program (GPL) z 64-bitowymi i 32-bitowymi wersjami systemu operacyjnego. Oto link GitHub programu:

Router audio

Oto prosty GIF, w jaki sposób jest używany:

wprowadź opis zdjęcia tutaj

użytkownik2597747
źródło