Як керувати кількома пристроями відтворення аудіо в Windows Vista / 7?


33

У мене на робочому столі підключені динаміки (аудіо вхід) та навушники (гарнітура USB із власною звуковою карткою). У Windows 7 я можу клацнути правою кнопкою миші мікшер звуку та вибрати пристрої відтворення та переключитися між цими пристроями.

Чи є простіший спосіб, можливо комбінація клавіш, який полегшить перемикання? Я працюю в спільному просторі. Іноді я хочу, щоб навушники не дратували інших людей, але в інший час динаміки все в порядку. Я хочу, щоб можна було швидко перемикати. В ідеальному світі рішення мого питання спрацювало б і у Vista.

Відповіді:


19

Рішення всіх ваших проблем із автоматизацією Windows: AutoIt !

Покладіть цей AutoIt і складіть його

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

Тепер створіть ярлик і в Target поставте шлях до складеного виконуваного файлу. Для аргументу введіть номер звукового пристрою у список, на який потрібно перейти. (для переключення на верхню позицію у списку ставити 1, другий елемент у списку, ставити 2 тощо). Якщо ви бажаєте комбінації клавіш, скористайтеся полем клавіш швидкого доступу у вікні властивостей ярлика.

Я шукав щось, щоб зробити те, що ви хотіли зробити, і виявив, що не існує програмного способу переключення аудіопристроїв у Vista / 7. Майкрософт вирішив, що програмістам потрібно це робити, тому я роблю цей сценарій для автоматизації процесу. Це не найкраще, оскільки воно спливає вікно, щоб змінити пристрій (необхідне), але це дає можливість створити ярлики, щоб змінити вихідний пристрій для вашого звуку.


2
Це, мабуть, найкорисніша відповідь, яку я ще мав знайти на всьому цьому сайті! Ще раз дякую за це ....
JL.

Дуже дивовижно, чудово працює.
WerkkreW

9

На сьогоднішній день Audio Changer - найкраще рішення, на мою думку.

Він використовує бездокументовані системні дзвінки замість імітації натискань клавіатури, а це означає, що ви можете без перешкод використовувати його в додатках на повноекранному екрані.


Чудова ідея, але це не тільки не спрацювало, тепер моя гарнітура взагалі не виявляється під час підключення. :(
Nick Spreitzer

2
Настійно рекомендується! У 10 разів краще, ніж сценарій AutoIt. Справді має бути прийнята відповідь.
Отіель

2
Файли налаштування тут: sourceforge.net/projects/defaultaudiocha/files Ого, це, мабуть, найчистіше рішення комутатора пристроїв відтворення, що я коли-небудь бачив !! +1
Гео

4

@Dan Walker Приємне рішення, але не ідеальне;)

Цей скрипт використовує існування файлу для фактичного виконання перемикання, тому ви можете використовувати один і той самий ярлик для перемикання між пристроями відтворення. Це просто просте редагування:

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

Приємно, мені подобається перемикання
Chaulky

3

Погукав це на деякий час, і єдине, що зробило трюк для мене, це сценарій від AutoHotKey, єдине бажання - це зробити це у фоновому режимі. Ось сценарій:

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

Ви можете змінити його відповідно до своїх потреб


Це працювало для мене, але мені довелося використовувати SendInput {Down}замість цього ControlSend,SysListView321,{Down}. Я також повинен був змінити кількість {Downs}, щоб відповідати моїм аудіопристроям.
Iain

3

Рішення fakt працює як шарм. Ось невеликий сценарій для автоматичної клавіші, який вибирає перший аудіопристрій за замовчуванням, коли ви натискаєте "F4", а другий при натисканні "F3". Ця версія працює з усіма версіями Windows. Тестовано за допомогою 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

2

@cptloop Audio Changer за замовчуванням був досить гарним, але дратує не встановити пристрій як пристрій зв’язку за замовчуванням після того, як його було встановлено як пристрій за замовчуванням.

Це привело мене до пошуку перемикача звуку , який має кілька додаткових функцій:

  • Підтримка комутації записуючих пристроїв
  • Підтримка декількох гарячих клавіш
  • Подвійний комутатор (поміняйте за замовчуванням та пристрої зв'язку)
  • І більше!

Єдине, що мені не подобається, це те, що він не дозволяє використовувати одну гарячу клавішу для перемикання між двома пристроями, кожен з яких повинен бути налаштований за допомогою власної гарячої клавіші. Однак, v2.0 розробляється і обіцяє деякі покращення функцій, а також підтримку плагінів. Вони також опублікували базовий API, тому можливо створити власне індивідуальне рішення.

Редагувати: Відповідно до xenolightning / AudioSwitcher_v1 # 607 , можливість перемикання / циклу пристроїв вже реалізована в v2.0.


0

Ще одна гарна програма для цього - Audio Router. Це безкоштовна (GPL) програма з 64-бітною та 32-розрядною версіями ОС. Ось посилання на програму GitHub:

Аудіо роутер

Ось простий GIF про те, як він використовується:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.