Como gerencio vários dispositivos de reprodução de áudio no Windows Vista / 7?


33

Tenho alto-falantes (entrada de áudio) e fones de ouvido (fone de ouvido USB com sua própria placa de som) conectados ao meu computador desktop. No Windows 7, posso clicar com o botão direito do mouse no Audio Mixer, selecionar Playback Devices e alternar entre esses dispositivos.

Existe uma maneira mais fácil, talvez um atalho de teclado, que facilite a alternância? Estou trabalhando em um espaço compartilhado. Às vezes, eu quero fones de ouvido para evitar irritar outras pessoas, mas outras vezes os alto-falantes são bons. Eu quero poder alternar rapidamente. Em um mundo ideal, a solução para minha pergunta também funcionaria no Vista.

Respostas:


19

A solução para todos os problemas persistentes de automação do Windows: AutoIt !

Coloque este AutoIt e compile-o

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

Agora crie um atalho e, no Target, coloque o caminho para o executável compilado. Para uma discussão, coloque o número do dispositivo de som na lista para a qual você deseja alternar. (para alternar para o item superior da lista, insira 1, o segundo item da lista, insira 2 etc.). Se você deseja um atalho de teclado, use o campo Tecla de atalho na janela de propriedades do atalho.

Eu estava procurando algo para fazer o que você queria fazer e descobri que não há maneira programática de alternar dispositivos de áudio no Vista / 7. Não é algo que a Microsoft decidiu que os programadores precisam fazer, então eu crio esse script para automatizar o processo. Não é o melhor, pois abre a janela para alterar o dispositivo (necessário), mas possibilita a criação de atalhos para alterar o dispositivo de saída para o seu som.


2
Esta é talvez a resposta mais útil que ainda não encontrei em todo o site! Mais uma vez obrigado por isso ....
JL.

Muito impressionante, funciona muito bem.
WerkkreW

9

Atualmente, o Default Audio Changer é a melhor solução, na minha opinião.

Ele usa chamadas não documentadas do sistema em vez de simular pressionamentos de teclado, o que significa que você pode usá-lo em aplicativos de tela cheia sem se preocupar.


Grande idéia, mas não apenas fez não trabalho, agora meu fone de ouvido não é detectado em tudo quando conectado :(.
Nick Spreitzer

2
Altamente recomendado! 10x melhor que um script AutoIt. Deve ser a resposta aceita, realmente.
Otiel

2
Os arquivos de instalação estão aqui: sourceforge.net/projects/defaultaudiocha/files Uau, essa é provavelmente a solução de switch de dispositivos de reprodução mais limpa que eu já vi! +1
Geo

4

@ Dan Walker Solução agradável, mas não perfeita;)

Esse script usa a existência de um arquivo para realmente executar uma alternância, para que você possa usar o mesmo atalho para alternar entre dispositivos de reprodução. É apenas uma edição simples:

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

Bom, eu como a alternância
Chaulky

3

Pesquisei isso por um tempo e a única coisa que fez o truque para mim é um script do AutoHotKey, o único desejo que tenho é que isso seja feito em segundo plano. Aqui está o script:

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

Você pode alterá-lo para atender às suas necessidades


Isso funcionou para mim, mas eu tive que usar em SendInput {Down}vez de ControlSend,SysListView321,{Down}. Eu também tive que alterar o número de {Downs} para corresponder aos meus dispositivos de áudio.
Iain

3

A solução da fakt funciona como um encanto. Aqui está um pequeno script para autohotkey que seleciona o primeiro dispositivo de áudio como padrão quando você pressiona "F4" e o segundo ao pressionar "F3". Esta versão funciona com todas as versões do Windows. Testado usando o 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 O Trocador de Áudio Padrão foi muito bom, mas irritantemente não configuraria um dispositivo como o dispositivo de comunicação padrão depois de ter sido definido como o dispositivo padrão.

Isso me levou a encontrar o Audio Switcher , que possui vários recursos adicionais:

  • Suporte para troca de dispositivos de gravação
  • Suporte para várias teclas de atalho
  • Comutador duplo (troque os dispositivos padrão e de comunicação)
  • E mais!

A única coisa que eu não gosto é que ela não permite que você use uma única tecla de atalho para alternar entre dois dispositivos, cada um precisa ser configurado com sua própria tecla de atalho. Dito isto, a v2.0 está em desenvolvimento e promete algumas melhorias de recursos, bem como suporte a plugins. Eles também publicaram a API subjacente, portanto, é possível criar sua própria solução personalizada.

Edit: Conforme xenolightning / AudioSwitcher_v1 # 607 , a capacidade de alternar / alternar dispositivos já está implementada na v2.0.


0

Outro bom programa para fazer isso é o Audio Router. É um programa gratuito (GPL) com versões de SO de 64 e 32 bits. Aqui está o link do GitHub do programa:

Roteador de áudio

Aqui está um GIF simples de como é usado:

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.