Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A API EndpointVolume permite que clientes especializados controlem e monitorem os níveis de volume de dispositivos terminais de áudio. Um cliente obtém referências às interfaces na API EndpointVolume obtendo o IMMDevice interface de um dispositivo de ponto de extremidade de áudio e chamando o IMMDevice::Activate método.
O arquivo de cabeçalho Endpointvolume.h define as interfaces na API EndpointVolume.
Os aplicativos de áudio que usam o de API MMDevice e WASAPI normalmente usam a interfaceISimpleAudioVolumepara controlar os níveis de volume por sessão. Apenas dois tipos de aplicativos de áudio exigem o uso da API EndpointVolume. Estes tipos de aplicação são:
- Aplicativos que gerenciam os níveis de volume mestre de dispositivos de ponto de extremidade de áudio, semelhante ao programa de controle de volume do Windows, Sndvol.exe.
- Aplicações de áudio profissional ("pro audio") que requerem acesso de modo exclusivo a dispositivos terminais 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 implementa controles de volume de hardware e silenciamento, a API EndpointVolume usa 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 volume e mudo 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 controles de volume de hardware e mudo, as alterações feitas no volume do software e nos controles de silenciamento 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 do software.
Para aplicativos que devem gerenciar o volume de hardware e os controles de silenciamento, a API EndpointVolume oferece duas vantagens potenciais em relação à 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, a interface deIAudioEndpointVolumena 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, quer o controle de volume seja implementado em hardware pelo dispositivo ou em 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 pode não conseguir encontrar o controle que está procurando. Normalmente, esse aplicativo é projetado para atravessar 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 para o qual não foi especificamente projetado 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 ampla gama 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 seguintes interfaces.
| Interface | Descrição |
|---|---|
| IAudioEndpointVolume | Representa os controles de volume no fluxo de áudio de ou para um dispositivo de ponto de extremidade de áudio. |
| IAudioMeterInformation | Representa um medidor de pico no fluxo de áudio de ou para um dispositivo de ponto de extremidade de áudio. |
Além disso, os clientes da API EndpointVolume que exigem notificação de alterações de volume e silenciamento em dispositivos de ponto de extremidade de áudio devem implementar a seguinte interface.
| Interface | Descrição |
|---|---|
| IAudioEndpointVolumeCallback | Fornece notificações quando o nível de volume ou o estado de silenciamento de um dispositivo de ponto de extremidade de áudio muda. |
Tópicos relacionados