Posso criar um bloco para alterar meu dispositivo de áudio padrão?

Posso criar um bloco para alterar meu dispositivo de áudio padrão?

Quero alternar facilmente entre alto-falantes e fones de ouvido. Isso é possível?

Responder1

Existem maneiras de mudar o dispositivo de áudio padrão. No entanto, como não existe uma API publicada para isso, as técnicas envolvem principalmente hacks comotentando enviar chaves, que não é muito robusto.

A API é mantida fechada e não documentada para evitar incompatibilidades de hardware, para que os fabricantes não briguem por ela como se fosse a página inicial padrão de um navegador. Contudo, alguém conseguiualternar dispositivos de áudio na linha de comando no Windows 7, e nos comentários WarNov já"testei no Windows 8. Funciona perfeitamente".

Lembre-se de que ele está usando uma API não documentada, portanto poderá falhar em versões futuras do Windows.

Como já mencionado por Jerry, você pode criaratalhos com blocos, basta fazer com que ele chame o código C++. Se quiser usá-lo em .NET, você também podeuse um invólucro.

O código também é publicado no GitHub comoControlador AudioEndPoint, com documentação fácil de entender sobre como usá-lo:

> EndPointController.exe --help
Lists active audio end-point playback devices or sets default audio end-point
playback device.

USAGE
  EndPointController.exe [-a] [-f format_str]  Lists audio end-point playback
                                               devices that are enabled.
  EndPointController.exe device_index          Sets the default playback device
                                               with the given index.

OPTIONS
  -a             Display all devices, rather than just active devices.
  -f format_str  Outputs the details of each device using the given format
                 string. If this parameter is ommitted the format string
                 defaults to: "Audio Device %d: %ws"

                 Parameters that are passed to the 'printf' function are
                 ordered as follows:
                   - Device index (int)
                   - Device friendly name (wstring)
                   - Device state (int)
                   - Device default? (1 for true 0 for false as int)
                   - Device description (wstring)
                   - Device interface friendly name (wstring)
                   - Device ID (wstring)''

Também é embrulhado comPlaybackDevice [Interruptor de saída de áudio]

Responder2

Bem, um bloco pode ser um atalho para um arquivo em lote ou arquivo PowerShell. Tocar no bloco executará o arquivo em lote ou PS. Isso significa que você pode criar um bloco para fazer praticamente qualquer coisa no Windows.

Aqui está a técnica CS:

https://stackoverflow.com/a/2216886/265706

A resposta NÃO marcada como resposta parece ser a solução para o Windows 7/8.

Isso pode ser o melhor possível para esta API específica, lamento dizer.

Aqui está a técnica de atalho:http://www.howtogeek.com/74331/how-to-create-your-own-windows-8-shortcuts-for-shutdown-perhaps/

A propósito, os dispositivos Windows RT também têm PowerShell

informação relacionada