Compartilhar via


Interface IAudioEndpointVolumeCallback (endpointvolume.h)

A interface IAudioEndpointVolumeCallback fornece notificações de alterações no nível do volume e no estado de mudo de um dispositivo de ponto de extremidade de áudio. Ao contrário das outras interfaces nesta seção, que são implementadas pelo componente do sistema WASAPI, um cliente da API EndpointVolume implementa a interface IAudioEndpointVolumeCallback . Para receber notificações de eventos, o cliente passa um ponteiro para sua interface IAudioEndpointVolumeCallback para o método IAudioEndpointVolume::RegisterControlChangeNotify .

Depois de registrar sua interface IAudioEndpointVolumeCallback , o cliente recebe notificações de evento na forma de retornos de chamada por meio do método OnNotify na interface . Essas notificações de evento ocorrem quando um dos seguintes métodos causa uma alteração no nível do volume ou no estado de mudo de um dispositivo de ponto de extremidade:

Se um dispositivo de ponto de extremidade de áudio implementar o volume de hardware e ativar mudo de controles, a interface IAudioEndpointVolume usará os controles de hardware para gerenciar o volume do dispositivo. Caso contrário, a interface IAudioEndpointVolume implementa controles de volume e mudo no software, de forma transparente para o cliente.

Se um dispositivo tiver controles de mudo e volume de hardware, as alterações feitas no volume e ativar mudo nas configurações por meio dos métodos na lista anterior afetarão o volume do dispositivo no modo compartilhado e no modo exclusivo. Se um dispositivo não tiver volume de hardware e ativar mudo de controles, as alterações feitas no volume de software e ativar o mudo dos controles por meio desses métodos afetarão o volume do dispositivo 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. No entanto, as alterações feitas nos controles de software por meio desses métodos geram notificações de eventos, independentemente de o dispositivo operar no modo compartilhado ou no modo exclusivo. As alterações feitas no volume de software e os controles mudos enquanto o dispositivo opera no modo exclusivo entrarão em vigor quando o dispositivo alternar para o modo compartilhado.

Para determinar se um dispositivo tem volume de hardware e ativar mudo de controles, chame o método IAudioEndpointVolume::QueryHardwareSupport .

Ao implementar a interface IAudioEndpointVolumeCallback , o cliente deve observar essas regras para evitar deadlocks:

  • Os métodos na interface devem não ser desbloqueados. O cliente nunca deve aguardar um objeto de sincronização durante um retorno de chamada de evento.
  • O cliente nunca deve chamar o método IAudioEndpointVolume::UnregisterControlChangeNotify durante um retorno de chamada de evento.
  • O cliente nunca deve liberar a referência final em um objeto de API EndpointVolume durante um retorno de chamada de evento.
Para obter um exemplo de código que implementa a interface IAudioEndpointVolumeCallback , consulte Controles de volume de ponto de extremidade.

Herança

A interface IAudioEndpointVolumeCallback herda da interface IUnknown . IAudioEndpointVolumeCallback também tem estes tipos de membros:

Métodos

A interface IAudioEndpointVolumeCallback tem esses métodos.

 
IAudioEndpointVolumeCallback::OnNotify

O método OnNotify notifica o cliente de que o nível de volume ou o estado de mudo do dispositivo de ponto de extremidade de áudio foi alterado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho endpointvolume.h

Confira também

Principais interfaces de áudio

EndpointVolume API

IAudioEndpointVolume::RegisterControlChangeNotify

IAudioEndpointVolume::UnregisterControlChangeNotify