Bagaimana cara mengelola beberapa perangkat pemutaran audio pada Windows Vista / 7?

33

Saya memiliki speaker (audio masuk) dan headphone (headset USB dengan kartu suara sendiri) terhubung ke komputer desktop saya. Di bawah Windows 7, saya dapat mengklik kanan Mixer Audio dan memilih Playback Devices dan beralih di antara perangkat saya ini.

Apakah ada cara yang lebih mudah, mungkin pintasan keyboard, yang akan membuatnya lebih mudah untuk beralih? Saya bekerja di ruang bersama kadang-kadang saya ingin headphone untuk menghindari orang lain yang mengganggu, tetapi di lain waktu speaker OK. Saya ingin dapat beralih dengan cepat. Di dunia yang ideal, solusi untuk pertanyaan saya akan bekerja di Vista juga.

Brian Lyttle
sumber

Jawaban:

19

Solusi untuk semua masalah otomatisasi Windows Anda yang mengganggu: AutoIt !

Pasang AutoIt ini dan kompilasi

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

Sekarang buat pintasan, dan di Target letakkan path ke executable yang dikompilasi. Untuk suatu argumen, masukkan nomor perangkat suara dalam daftar yang ingin Anda alihkan. (untuk beralih ke item teratas dalam daftar, masukkan 1, item kedua dalam daftar, masukkan 2, dll). Jika Anda menginginkan pintasan keyboard, gunakan bidang Shortcut Key di jendela properti pintasan.

Saya telah mencari sesuatu untuk melakukan apa yang ingin Anda lakukan, dan menemukan bahwa tidak ada cara terprogram yang dapat Anda alihkan perangkat audio di Vista / 7. Itu bukan sesuatu yang Microsoft memutuskan bahwa programmer perlu melakukannya, jadi saya membuat skrip ini untuk mengotomatiskan proses. Ini bukan yang terbaik karena muncul jendela untuk mengubah perangkat (diperlukan), tetapi memungkinkan untuk membuat pintasan untuk mengubah perangkat output untuk suara Anda.

Dan Walker
sumber
2
Ini mungkin jawaban yang paling berguna yang belum saya temukan di seluruh situs ini! Terima kasih lagi untuk ini ....
JL.
Sangat luar biasa, sangat bagus.
WerkkreW
9

Default Audio Changer saat ini merupakan solusi terbaik, menurut saya.

Ini menggunakan panggilan sistem tanpa dokumen alih-alih mensimulasikan penekanan keyboard, yang berarti Anda dapat menggunakannya dalam aplikasi layar penuh tanpa khawatir.

cptloop
sumber
Ide bagus, tetapi tidak hanya itu tidak berfungsi, sekarang headset saya tidak terdeteksi sama sekali ketika dicolokkan. :(
Nick Spreitzer
2
Sangat dianjurkan! 10x lebih baik daripada skrip AutoIt. Seharusnya jawaban yang diterima, sungguh.
Otiel
2
File pengaturan ada di sini: sourceforge.net/projects/defaultaudiocha/files Wow ini mungkin solusi peralihan perangkat pemutaran terbersih yang pernah saya lihat !! +1
Geo
4

@Dan Walker Solusi yang bagus, tetapi tidak sempurna;)

Script ini menggunakan keberadaan file untuk melakukan toggle, sehingga Anda dapat menggunakan pintasan yang sama untuk beralih di antara perangkat pemutaran. Ini hanya edit sederhana:

;-----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
sumber
Bagus, saya suka toggling
Chaulky
3

Menelusuri ini untuk sementara waktu dan satu-satunya hal yang berhasil bagi saya adalah skrip dari AutoHotKey, satu-satunya harapan yang saya miliki adalah melakukan ini di latar belakang .. Berikut skripnya:

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

Anda dapat mengubahnya untuk memenuhi kebutuhan Anda


sumber
Ini bekerja untuk saya, tapi saya harus menggunakan SendInput {Down}bukan ControlSend,SysListView321,{Down}. Saya juga harus mengubah jumlah {Downs} agar cocok dengan perangkat audio saya.
Iain
3

Solusi fakt bekerja seperti pesona. Berikut sedikit skrip untuk autohotkey yang memilih perangkat audio pertama sebagai default ketika Anda menekan "F4" dan yang kedua saat menekan "F3". Versi ini berfungsi dengan semua Versi Windows. Diuji menggunakan 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

sumber
2

@cptloop Default Audio Changer cukup bagus, tetapi yang menjengkelkan tidak akan menetapkan perangkat sebagai perangkat komunikasi default setelah itu ditetapkan sebagai perangkat default.

Itu membuat saya menemukan Audio Switcher , yang memiliki beberapa fitur tambahan:

  • Dukungan untuk berpindah perangkat rekaman
  • Dukungan untuk beberapa hotkey
  • Dual switch (menukar perangkat default dan komunikasi)
  • Dan lagi!

Satu-satunya hal yang saya tidak suka, adalah itu tidak memungkinkan Anda untuk menggunakan hotkey tunggal untuk beralih di antara dua perangkat, masing-masing perlu dikonfigurasi dengan hotkey sendiri. Yang mengatakan, v2.0 sedang dalam pengembangan, dan menjanjikan beberapa perbaikan fitur, serta dukungan plugin. Mereka juga telah menerbitkan API yang mendasarinya, sehingga dimungkinkan untuk membuat solusi khusus Anda sendiri.

Sunting: Sesuai xenolightning / AudioSwitcher_v1 # 607 , kemampuan untuk beralih / siklus perangkat sudah diterapkan di v2.0.

Dave Hughes
sumber
0

Program bagus lainnya untuk melakukan ini adalah Audio Router. Ini adalah program gratis (GPL) dengan versi OS 64-bit dan 32-bit. Inilah tautan GitHub program:

Router Audio

Berikut ini adalah GIF sederhana cara penggunaannya:

masukkan deskripsi gambar di sini

pengguna2597747
sumber