Compartir a través de


Controles de volumen

Los clientes que administran secuencias en modo compartido suelen usar las interfaces ISimpleAudioVolume e IAudioSessionEvents en WASAPI para controlar y supervisar los niveles de volumen de flujo. A través de los métodos de la interfaz ISimpleAudioVolume , el cliente puede obtener y establecer los niveles de volumen de las sesiones de audio a las que pertenecen las secuencias en modo compartido. Si Sndvol u otra aplicación cambia el nivel de volumen de sesión, el cliente puede recibir una notificación del cambio a través de la interfaz IAudioSessionEvents .

Los clientes que administran secuencias en modo exclusivo suelen usar las interfaces IAudioEndpointVolume e IAudioEndpointVolumeCallback de endpointVolume API para controlar y supervisar los niveles de volumen de flujo. A través de los métodos de la interfaz IAudioEndpointVolume , el cliente puede obtener y establecer el nivel de volumen de un dispositivo de punto de conexión de audio. Si Sndvol u otra aplicación cambia el nivel de volumen del dispositivo de punto de conexión, el cliente puede recibir una notificación del cambio a través de la interfaz IAudioEndpointVolumeCallback .

Como se explica en Sesiones de audio, Sndvol es el programa de control de volumen del sistema. Muestra controles de volumen para los dispositivos de punto de conexión de representación de audio en el sistema. (Actualmente, no muestra los controles de volumen para los dispositivos de punto de conexión de captura de audio). Para ver los controles de volumen de un dispositivo determinado, haga clic en Dispositivo en la barra de menús y seleccione un nombre de dispositivo en la lista de dispositivos disponibles.

La ventana Sndvol separa los controles de volumen de un dispositivo en dos grupos. El cuadro de grupo del lado izquierdo de la ventana tiene la etiqueta Dispositivo. El cuadro Dispositivo contiene un único control de volumen controlado por la interfaz IAudioEndpointVolume . Los cambios realizados por el usuario en este control de volumen se pueden supervisar a través de la interfaz IAudioEndpointVolumeCallback .

El cuadro de grupo del lado derecho de la ventana de Sndvol está etiquetado como Aplicaciones. El cuadro Aplicaciones contiene los controles de volumen de las aplicaciones que comparten actualmente el dispositivo. En el caso de las aplicaciones que usan el dispositivo en modo compartido, los controles de volumen representan los niveles de volumen controlados por la interfaz ISimpleAudioVolume . Los cambios realizados por el usuario en estos controles de volumen se pueden supervisar a través de la interfaz IAudioSessionEvents .

Aunque una aplicación en modo compartido puede usar su interfaz IAudioSessionEvents para supervisar los cambios realizados por el usuario en el control de volumen de la aplicación en el cuadro Aplicaciones de la ventana Sndvol, la aplicación no puede supervisar los cambios en los controles de volumen de otras aplicaciones no relacionadas. De forma similar, una aplicación puede cambiar los niveles de volumen de sus sesiones de audio a través de la interfaz ISimpleAudioVolume , pero no puede cambiar los niveles de volumen de las sesiones que pertenecen a otras aplicaciones no relacionadas.

Sin embargo, dos o más aplicaciones relacionadas (o instancias de la misma aplicación) pueden compartir el mismo control de volumen en el cuadro Aplicaciones de la ventana Sndvol asignando sus secuencias de audio a la misma sesión entre procesos o asociando sus respectivas sesiones con el mismo parámetro de agrupación. Para obtener más información, vea Sesiones de audio y parámetros de agrupación.

WASAPI proporciona dos interfaces adicionales, IChannelAudioVolume e IAudioStreamVolume, para controlar los niveles de volumen de secuencias en modo compartido. Estas interfaces se usan principalmente por clientes especializados que requieren control sobre los niveles de volumen de canales individuales en una sesión o secuencias individuales de una sesión.

La API DeviceTopology permite a los clientes acceder a los controles de volumen en las topologías de los adaptadores de audio. Sin embargo, los clientes que administran flujos en modo exclusivo suelen usar la API EndpointVolume en lugar de la API DeviceTopology para controlar los niveles de volumen de flujo. La API EndpointVolume simplifica el control del volumen de un dispositivo de punto de conexión de dos maneras. En primer lugar, si un dispositivo de punto de conexión implementa un control de volumen de hardware, la API DeviceTopology requiere que el cliente recorra la topología del dispositivo en la búsqueda del control de hardware. En cambio, la API EndpointVolume busca automáticamente el control de volumen de hardware para el cliente. En segundo lugar, si el dispositivo de punto de conexión no implementa un control de volumen de hardware, un cliente DeviceTopology debe implementar un control de volumen en el software. En cambio, la API EndpointVolume sustituye automáticamente un control de volumen de software por el control de hardware que falta.

En las secciones siguientes se describen los controles de volumen para las sesiones de audio y para los dispositivos de punto de conexión de audio:

Guía de programación