web-dev-qa-db-ja.com

Windows Vista / 7で複数のオーディオ再生デバイスを管理するにはどうすればよいですか?

スピーカー(オーディオ入力)とヘッドフォン(独自のサウンドカードを備えたUSBヘッドセット)をデスクトップコンピューターに接続しています。 Windows 7では、オーディオミキサーを右クリックして再生デバイスを選択し、これらのデバイスを切り替えることができます。

切り替えを簡単にする簡単な方法(キーボードショートカットなど)はありますか?共有スペースで作業しているときは、他の人の迷惑にならないようにヘッドフォンを使用したい場合もあれば、スピーカーを使用したい場合もあります。すばやく切り替えられるようにしたい。理想的な世界では、私の質問に対する解決策はVistaでも機能します。

33
Brian Lyttle

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)

次に、ショートカットを作成し、ターゲットにコンパイル済み実行可能ファイルへのパスを配置します。引数として、切り替え先のサウンドデバイスの番号をリストに入れます。 (リストの一番上のアイテムに切り替えるには、1を入れ、リストの2番目のアイテムを入れ、2を入れます)。キーボードショートカットが必要な場合は、ショートカットのプロパティウィンドウの[ショートカットキー]フィールドを使用します。

私はあなたがやりたいことをするために何かを探していました、そしてVista/7でオーディオデバイスを切り替えることができるプログラム的な方法がないことを発見しました。マイクロソフトがプログラマが行う必要があると決定したものではないので、このスクリプトを作成してプロセスを自動化します。デバイスを変更するためにウィンドウがポップアップするため(必須)、最適ではありませんが、サウンドの出力デバイスを変更するショートカットを作成できます。

19
Dan Walker

デフォルトのオーディオチェンジャー は、私の考えでは、現時点で最良のソリューションです。

キーボードプレスをシミュレートする代わりに、文書化されていないシステムコールを使用します。つまり、フルスクリーンアプリケーションで安心して使用できます。

9
cptloop

@ダンウォーカーニースのソリューションですが、完璧ではありません;)

このスクリプトは、ファイルの存在を使用して実際にトグルを実行するため、同じショートカットを使用して再生デバイスを切り替えることができます。これは単純な編集です:

;-----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)
4
Andy Ray

しばらくこれをグーグル化し、私のためにトリックをした唯一のことはAutoHotKeyからのスクリプトであり、私が持っている唯一の望みはこれをバックグラウンドで実行することです..これがスクリプトです:

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

ニーズに合わせて変更できます

3
fakts

faktのソリューションは魅力のように機能します。ここでは、「F4」を押したときに最初のオーディオデバイスを、「F3」を押したときに2番目のオーディオデバイスをデフォルトとして選択するautohotkeyの小さなスクリプトを示します。このバージョンは、すべての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
3
NTyp

@cptloopデフォルトのオーディオチェンジャーはかなり良かったのですが、デフォルトのデバイスとして設定された後、不愉快なことにデバイスをデフォルトの通信デバイスとして設定しませんでした。

それが私にいくつかの追加機能を備えた Audio Switcher を見つけることにつながりました:

  • 録音デバイスの切り替えのサポート
  • 複数のホットキーのサポート
  • デュアルスイッチ(デフォルトデバイスと通信デバイスを交換)
  • もっと!

私が気に入らない唯一のことは、1つのホットキーを使用して2つのデバイスを切り替えることができず、それぞれが独自のホットキーで設定される必要があることです。つまり、v2.0は開発中であり、プラグインのサポートと同様に、いくつかの機能の改善が約束されています。また、基盤となるAPIも公開しているため、独自のソリューションを作成することが可能です。

編集: xenolightning/AudioSwitcher_v1#607 のとおり、デバイスの切り替え/サイクル機能はv2.0ですでに実装されています。

2
Dave Hughes

これを行うための別の良いプログラムは、オーディオルーターです。これは、64ビットおよび32ビットのOSバージョンを備えた無料の(GPL)プログラムです。プログラムのGitHubリンクは次のとおりです。

オーディオルーター

使い方の簡単なGIFは次のとおりです。

enter image description here

0
user2597747