Compartir a través de


EndpointVolume API

La API EndpointVolume permite a los clientes especializados controlar y supervisar los niveles de volumen de los dispositivos de punto de conexión de audio. Un cliente obtiene referencias a las interfaces de la API EndpointVolume obteniendo la interfaz IMMDevice de un dispositivo de punto de conexión de audio y llamando al método IMMDevice::Activate .

El archivo de encabezado Endpointvolume.h define las interfaces de la API EndpointVolume.

Las aplicaciones de audio que usan la API MMDevice y WASAPI suelen usar la interfaz ISimpleAudioVolume para controlar los niveles de volumen por sesión. Solo dos tipos de aplicaciones de audio requieren el uso de la API EndpointVolume. Estos tipos de aplicación son:

  • Aplicaciones que administran los niveles de volumen maestro de los dispositivos de punto de conexión de audio, de forma similar al programa de control de volumen de Windows, Sndvol.exe.
  • Aplicaciones de audio profesional ("audio pro") que requieren acceso en modo exclusivo a los dispositivos de punto de conexión de audio.

El uso inadecuado de la API EndpointVolume puede interferir con la directiva de audio de Windows e interrumpir la configuración del volumen del sistema del usuario.

Si un dispositivo de punto de conexión de audio implementa controles de volumen de hardware y silenciación, la API EndpointVolume usa esos controles para administrar el volumen del dispositivo. De lo contrario, la API EndpointVolume implementa los controles en software, de forma transparente para el cliente.

Si un dispositivo tiene controles de volumen de hardware y silenciación, los cambios realizados en el volumen del dispositivo y la configuración de silenciación a través de la API EndpointVolume afectan al nivel de volumen tanto en modo compartido como en modo exclusivo. Si un dispositivo carece de controles de volumen de hardware y silenciación, los cambios realizados en el volumen de software y silenciar los controles a través de la API EndpointVolume afectan al nivel de volumen 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.

En el caso de las aplicaciones que deben administrar el volumen de hardware y los controles silenciados, la API EndpointVolume ofrece dos ventajas potenciales sobre la API DeviceTopology.

En primer lugar, varios dispositivos adaptadores de audio carecen de controles de volumen de hardware. Si un dispositivo carece de un control de volumen de hardware, la interfaz IAudioEndpointVolume de la API EndpointVolume implementa automáticamente un control de volumen de software en la secuencia hacia o desde ese dispositivo. En el caso de un cliente de la API EndpointVolume, el resultado es el mismo si el dispositivo implementa el control de volumen en hardware o en software mediante la interfaz de la API EndpointVolume.

En segundo lugar, incluso si el dispositivo adaptador implementa controles de volumen de hardware, una aplicación que usa la API DeviceTopology para implementar un algoritmo de recorrido de topología podría no encontrar el control que está buscando. Normalmente, esta aplicación está diseñada para recorrer la topología de hardware de un dispositivo determinado o un conjunto de dispositivos relacionados. La aplicación corre el riesgo de generar errores si intenta recorrer la topología de un dispositivo con el que no se ha diseñado o probado específicamente.

Solo las aplicaciones especializadas que deben tener acceso a funciones de hardware distintas de los controles de volumen y silenciar requieren el uso de la API DeviceTopology. En el caso de las aplicaciones que requieren control solo del nivel de volumen de una secuencia en modo exclusivo, la API EndpointVolume es más fácil de usar y funciona de forma confiable con una amplia gama de dispositivos de hardware de audio.

Para obtener ejemplos de código que usan las interfaces de endpointVolume API, consulte los temas siguientes:

Para ver un ejemplo que usa endpointVolume API, consulte EndpointVolume en Windows SDK.

La API EndpointVolume implementa las siguientes interfaces.

Interfaz Descripción
IAudioEndpointVolume Representa los controles de volumen de la secuencia de audio hacia o desde un dispositivo de punto de conexión de audio.
IAudioMeterInformation Representa un medidor máximo en la secuencia de audio hacia o desde un dispositivo de punto de conexión de audio.

 

Además, los clientes de la API EndpointVolume que requieren notificación de los cambios de volumen y silenciación en los dispositivos de punto de conexión de audio deben implementar la siguiente interfaz.

Interfaz Descripción
IAudioEndpointVolumeCallback Proporciona notificaciones cuando cambia el estado de silenciación o nivel de volumen de un dispositivo de punto de conexión de audio.

 

Controles de volumen

IMMDevice (interfaz)

IMMDevice::Activate

ISimpleAudioVolume

Referencia de programación