Interfaz IAudioEndpointVolumeCallback (endpointvolume.h)
La interfaz IAudioEndpointVolumeCallback proporciona notificaciones de los cambios en el nivel de volumen y el estado de silenciación de un dispositivo de punto de conexión de audio. A diferencia de las otras interfaces de esta sección, implementadas por el componente del sistema WASAPI, un cliente de API EndpointVolume implementa la interfaz IAudioEndpointVolumeCallback . Para recibir notificaciones de eventos, el cliente pasa un puntero a su interfaz IAudioEndpointVolumeCallback al método IAudioEndpointVolume::RegisterControlChangeNotify .
Después de registrar su interfaz IAudioEndpointVolumeCallback , el cliente recibe notificaciones de eventos en forma de devoluciones de llamada a través del método OnNotify en la interfaz. Estas notificaciones de eventos se producen cuando uno de los métodos siguientes provoca un cambio en el nivel de volumen o el estado de silenciación de un dispositivo de punto de conexión:
- IAudioEndpointVolume::SetChannelVolumeLevel
- IAudioEndpointVolume::SetChannelVolumeLevelScalar
- IAudioEndpointVolume::SetMasterVolumeLevel
- IAudioEndpointVolume::SetMasterVolumeLevelScalar
- IAudioEndpointVolume::SetMute
- IAudioEndpointVolume::VolumeStepDown
- IAudioEndpointVolume::VolumeStepUp
Si un dispositivo tiene controles de volumen de hardware y silenciación, los cambios realizados en la configuración de volumen y silenciado a través de los métodos de la lista anterior afectan al volumen del dispositivo en modo compartido y modo exclusivo. Si un dispositivo carece de volumen de hardware y controles silenciados, los cambios realizados en el volumen de software y silenciar los controles a través de estos métodos afectan al volumen del dispositivo en modo compartido, pero no en modo exclusivo. En modo exclusivo, el cliente y el dispositivo intercambian datos de audio directamente, pasando los controles de software. Sin embargo, los cambios realizados en los controles de software a través de estos métodos generan notificaciones de eventos independientemente de si el dispositivo está funcionando en modo compartido o en modo exclusivo. Los cambios realizados en el volumen de software y silenciar controles mientras el dispositivo funciona en modo exclusivo surten efecto cuando el dispositivo cambia al modo compartido.
Para determinar si un dispositivo tiene controles de volumen y silenciación de hardware, llame al método IAudioEndpointVolume::QueryHardwareSupport .
Al implementar la interfaz IAudioEndpointVolumeCallback , el cliente debe observar estas reglas para evitar interbloqueos:
- Los métodos de la interfaz deben ser sin bloqueo. El cliente nunca debe esperar en un objeto de sincronización durante una devolución de llamada de evento.
- El cliente nunca debe llamar al método IAudioEndpointVolume::UnregisterControlChangeNotify durante una devolución de llamada de evento.
- El cliente nunca debe liberar la referencia final en un objeto de API EndpointVolume durante una devolución de llamada de evento.
Herencia
La interfaz IAudioEndpointVolumeCallback hereda de la interfaz IUnknown . IAudioEndpointVolumeCallback también tiene estos tipos de miembros:
Métodos
La interfaz IAudioEndpointVolumeCallback tiene estos métodos.
IAudioEndpointVolumeCallback::OnNotify El método OnNotify notifica al cliente que ha cambiado el nivel de volumen o el estado de silenciación del dispositivo de punto de conexión de audio. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | endpointvolume.h |
Consulte también
Interfaces de audio principales