EndpointVolume API
A API EndpointVolume permite que clientes especializados controlem e monitorem os níveis de volume de dispositivos de ponto de extremidade de áudio . Um cliente obtém referências às interfaces na API EndpointVolume obtendo a interfaceIMMDevice de um dispositivo de ponto de extremidade de áudio e chamando o método IMMDevice::Activate.
O arquivo de cabeçalho Endpointvolume.h define as interfaces na API EndpointVolume.
Os aplicativos de áudio que usam a de API do MMDevice e WASAPI normalmente usam a interfaceISimpleAudioVolume para controlar os níveis de volume por sessão. Apenas dois tipos de aplicativos de áudio exigem o uso da API EndpointVolume. Esses tipos de aplicativo são:
- Aplicativos que gerenciam os níveis de volume mestre de dispositivos de ponto de extremidade de áudio, semelhantes ao programa de controle de volume do Windows, Sndvol.exe.
- Aplicativos de áudio profissional ("áudio pro") que exigem acesso de modo exclusivo a dispositivos de ponto de extremidade de áudio.
O uso inadequado da API EndpointVolume pode interferir na política de áudio do Windows e interromper as configurações de volume do sistema do usuário.
Se um dispositivo de ponto de extremidade de áudio implementar o volume de hardware e ativar controles mudos, a API EndpointVolume usará esses controles para gerenciar o volume do dispositivo. Caso contrário, a API EndpointVolume implementa os controles no software, de forma transparente para o cliente.
Se um dispositivo tiver controles de mudo e volume de hardware, as alterações feitas nas configurações de volume e mudo do dispositivo por meio da API EndpointVolume afetarão o nível de volume no modo compartilhado e no modo exclusivo. Se um dispositivo não tiver volume de hardware e controles mudos, alterações feitas no volume de software e controles mudos por meio da API EndpointVolume afetarão o nível de volume no modo compartilhado, mas não no modo exclusivo. No modo exclusivo, o cliente e o dispositivo trocam dados de áudio diretamente, ignorando os controles de software.
Para aplicativos que devem gerenciar o volume de hardware e ativar controles mudos, a API EndpointVolume oferece duas vantagens potenciais sobre a API DeviceTopology.
Primeiro, vários dispositivos de adaptador de áudio não têm controles de volume de hardware. Se um dispositivo não tiver um controle de volume de hardware, o interface IAudioEndpointVolume na API EndpointVolume implementará automaticamente um controle de volume de software no fluxo de ou para esse dispositivo. Para um cliente da API EndpointVolume, o resultado é o mesmo se o controle de volume é implementado no hardware pelo dispositivo ou no software pela interface da API EndpointVolume.
Em segundo lugar, mesmo que o dispositivo adaptador implemente controles de volume de hardware, um aplicativo que usa a API DeviceTopology para implementar um algoritmo de passagem de topologia poderá não encontrar o controle que ele está procurando. Normalmente, esse aplicativo é projetado para percorrer a topologia de hardware de um determinado dispositivo ou conjunto de dispositivos relacionados. O aplicativo corre o risco de falhar se tentar atravessar a topologia de um dispositivo com o qual ele não foi projetado especificamente ou testado.
Somente aplicativos especializados que devem acessar funções de hardware diferentes de controles de volume e mudo exigem o uso da API DeviceTopology. Para aplicativos que exigem controle apenas do nível de volume de um fluxo de modo exclusivo, a API EndpointVolume é mais simples de usar e funciona de forma confiável com uma gama maior de dispositivos de hardware de áudio.
Para obter exemplos de código que usam as interfaces na API EndpointVolume, consulte os seguintes tópicos:
Para ver um exemplo que usa a API EndpointVolume, consulte EndpointVolume no SDK do Windows.
A API EndpointVolume implementa as interfaces a seguir.
Além disso, os clientes da API EndpointVolume que exigem notificação de alterações de volume e mudo em dispositivos de ponto de extremidade de áudio devem implementar a interface a seguir.
Interface | Descrição |
---|---|
IAudioEndpointVolumeCallback | Fornece notificações quando o nível de volume ou o estado de mudo de um dispositivo de ponto de extremidade de áudio é alterado. |
Tópicos relacionados