it-swarm-korea.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)

이제 바로 가기를 만들고 Target에 컴파일 된 실행 파일의 경로를 입력하십시오. 인수의 경우, 전환하려는 사운드 장치의 번호를 목록에 넣으십시오. (목록의 최상위 항목으로 전환하려면 1, 목록의 두 번째 항목, 2 등을 입력하십시오). 바로 가기 키를 원하면 바로 가기 속성 창의 바로 가기 키 필드를 사용하십시오.

원하는 작업을 수행하려고했지만 Vista/7에서 오디오 장치를 전환 할 수있는 프로그래밍 방식이 없다는 것을 알았습니다. Microsoft가 프로그래머가해야한다고 결정한 것이 아니기 때문에 프로세스를 자동화하기 위해이 스크립트를 작성합니다. 장치를 변경하기 위해 창을 띄우기 때문에 가장 좋지는 않지만 (필요한) 사운드 출력 장치를 변경하는 바로 가기를 만들 수 있습니다.

19
Dan Walker

기본 오디오 체인저 는 현재 제 생각에 가장 좋은 솔루션입니다.

키보드 누르기를 시뮬레이션하는 대신 문서화되지 않은 시스템 호출을 사용하므로 걱정없이 전체 화면 응용 프로그램에서 사용할 수 있습니다.

9
cptloop

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

이것을 잠시 동안 Googled로 만들었고 나를 위해 트릭을 한 유일한 것은 AutoHotKey의 스크립트입니다. 내가 원하는 유일한 것은 이것을 백그라운드에서 수행하는 것입니다. 스크립트는 다음과 같습니다.

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

필요에 맞게 변경할 수 있습니다

3
fakts

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
3
NTyp

@cptloop 기본 오디오 체인저는 꽤 좋지만 기본 장치로 설정된 후에 장치를 기본 통신 장치로 설정하지 않았습니다.

그러면 여러 가지 추가 기능이있는 Audio Switcher 를 찾을 수 있습니다.

  • 기록 장치 전환 지원
  • 여러 핫키 지원
  • 듀얼 스위치 (기본 및 통신 장치 교체)
  • 그리고 더!

내가 싫어하는 유일한 점은 단일 핫키를 사용하여 두 장치 간을 전환 할 수 없다는 것입니다. 각 핫키로 구성해야합니다. 즉, v2.0은 개발 중이며 플러그인 지원뿐만 아니라 일부 기능 개선을 약속합니다. 또한 기본 API를 게시 했으므로 자신 만의 맞춤형 솔루션을 만들 수 있습니다.

편집 : xenolightning/AudioSwitcher_v1 # 607 에 따라 장치를 토글/사이클하는 기능은 이미 v2.0에서 구현되었습니다.

2
Dave Hughes

이를위한 또 다른 좋은 프로그램은 오디오 라우터입니다. 64 비트 및 32 비트 OS 버전의 무료 (GPL) 프로그램입니다. 프로그램의 GitHub 링크는 다음과 같습니다.

오디오 라우터

사용 방법에 대한 간단한 GIF는 다음과 같습니다.

enter image description here

0
user2597747