Método IAudioEndpointVolume::GetVolumeRange (endpointvolume.h)
El método GetVolumeRange obtiene el intervalo de volúmenes, en decibelios, de la secuencia de audio que entra o sale del dispositivo de punto de conexión de audio.
Sintaxis
HRESULT GetVolumeRange(
[out] float *pflVolumeMindB,
[out] float *pflVolumeMaxdB,
[out] float *pflVolumeIncrementdB
);
Parámetros
[out] pflVolumeMindB
Puntero al nivel de volumen mínimo. Este parámetro apunta a una variable float en la que el método escribe el nivel de volumen mínimo en decibelios. Este valor permanece constante durante la vigencia de la instancia de interfaz IAudioEndpointVolume .
[out] pflVolumeMaxdB
Puntero al nivel de volumen máximo. Este parámetro apunta a una variable float en la que el método escribe el nivel máximo de volumen en decibelios. Este valor permanece constante durante la vigencia de la instancia de interfaz IAudioEndpointVolume .
[out] pflVolumeIncrementdB
Puntero al incremento del volumen. Este parámetro apunta a una variable float en la que el método escribe el incremento de volumen en decibelios. Este incremento permanece constante durante la vigencia de la instancia de interfaz IAudioEndpointVolume .
Valor devuelto
Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los códigos de retorno posibles incluyen, entre otros, los valores que se muestran en la tabla siguiente.
Código devuelto | Descripción |
---|---|
|
El parámetro pfLevelMinDB, pfLevelMaxDB o pfVolumeIncrementDB es NULL. |
Comentarios
El intervalo de volúmenes de vmin = *pfLevelMinDB a vmax = *pfLevelMaxDB se divide en n intervalos uniformes de tamaño vinc = *pfVolumeIncrementDB, donde
n = (vmax – vmin) / vinc.
Los valores vmin, vmax y vinc se miden en decibelios. El cliente puede establecer el nivel de volumen en uno de los valores discretos n + 1 del intervalo de vmin a vmax.
Los métodos IAudioEndpointVolume::SetChannelVolumeLevel e IAudioEndpointVolume::SetMasterVolumeLevel solo aceptan niveles de volumen en el intervalo de vmin a vmax. Si el autor de la llamada especifica un nivel de volumen fuera de este intervalo, el método produce un error y devuelve E_INVALIDARG. Si el autor de la llamada especifica un nivel de volumen que se encuentra entre dos pasos en el intervalo de volúmenes, el método establece el nivel de volumen del punto de conexión en el paso más cercano al nivel de volumen solicitado y devuelve S_OK. Sin embargo, una llamada posterior a IAudioEndpointVolume::GetChannelVolumeLevel o IAudioEndpointVolume::GetMasterVolumeLevel recupera el nivel de volumen solicitado por la llamada anterior a SetChannelVolumeLevel o SetMasterVolumeLevel, no el valor del paso.
Si el control de volumen se implementa en hardware, GetVolumeRange describe el intervalo y la granularidad de la configuración del volumen de hardware. En cambio, los pasos notificados por el método IEndpointVolume::GetVolumeStepInfo corresponden a puntos de una curva con cinta de audio calculada en software por los métodos IEndpointVolume::VolumeStepDown e IEndpointVolume::VolumeStepUp . En primer lugar, cualquiera de los métodos calcula el nivel de volumen idealizado que corresponde al siguiente punto de la curva. A continuación, el método selecciona la configuración del volumen de hardware que es la mejor aproximación al nivel idealizado. Para obtener más información sobre las curvas con cinta de audio, vea Controles de volumen con cinta de audio.
Requisitos
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
IAudioEndpointVolume (interfaz)
IAudioEndpointVolume::GetChannelVolumeLevel
IAudioEndpointVolume::GetMasterVolumeLevel
IAudioEndpointVolume::SetChannelVolumeLevel
IAudioEndpointVolume::SetMasterVolumeLevel
IEndpointVolume::GetVolumeStepInfo