Share via


Méthode IAudioEndpointVolume::GetVolumeRange (endpointvolume.h)

La méthode GetVolumeRange obtient la plage de volumes, en décibels, du flux audio qui entre ou quitte le périphérique de point de terminaison audio.

Syntaxe

HRESULT GetVolumeRange(
  [out] float *pflVolumeMindB,
  [out] float *pflVolumeMaxdB,
  [out] float *pflVolumeIncrementdB
);

Paramètres

[out] pflVolumeMindB

Pointeur vers le niveau de volume minimal. Ce paramètre pointe vers une variable float dans laquelle la méthode écrit le niveau de volume minimal en décibels. Cette valeur reste constante pendant la durée de vie de l’interface IAudioEndpointVolume instance.

[out] pflVolumeMaxdB

Pointeur vers le niveau de volume maximal. Ce paramètre pointe vers une variable float dans laquelle la méthode écrit le niveau de volume maximal en décibels. Cette valeur reste constante pendant la durée de vie de l’interface IAudioEndpointVolume instance.

[out] pflVolumeIncrementdB

Pointeur vers l’incrément de volume. Ce paramètre pointe vers une variable float dans laquelle la méthode écrit l’incrément de volume en décibels. Cet incrément reste constant pendant la durée de vie de l’interface IAudioEndpointVolume instance.

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
E_POINTER
Le paramètre pfLevelMinDB, pfLevelMaxDB ou pfVolumeIncrementDB est NULL.

Notes

La plage de volumes de vmin = *pfLevelMinDB à vmax = *pfLevelMaxDB est divisée en n intervalles uniformes de taille vinc = *pfVolumeIncrementDB, où

n = (vmax – vmin) / vinc.

Les valeurs vmin, vmax et vinc sont mesurées en décibels. Le client peut définir le niveau de volume sur l’une des valeurs discrètes n + 1 dans la plage de vmin à vmax.

Les méthodes IAudioEndpointVolume::SetChannelVolumeLevel et IAudioEndpointVolume::SetMasterVolumeLevel acceptent uniquement les niveaux de volume dans la plage de vmin à vmax. Si l’appelant spécifie un niveau de volume en dehors de cette plage, la méthode échoue et retourne E_INVALIDARG. Si l’appelant spécifie un niveau de volume compris entre deux étapes de la plage de volumes, la méthode définit le niveau de volume du point de terminaison sur l’étape la plus proche du niveau de volume demandé et retourne S_OK. Toutefois, un appel ultérieur à IAudioEndpointVolume::GetChannelVolumeLevel ou IAudioEndpointVolume::GetMasterVolumeLevel récupère le niveau de volume demandé par l’appel précédent à SetChannelVolumeLevel ou SetMasterVolumeLevel, et non la valeur d’étape.

Si le contrôle de volume est implémenté dans le matériel, GetVolumeRange décrit la plage et la granularité des paramètres de volume matériel. En revanche, les étapes signalées par la méthode IEndpointVolume::GetVolumeStepInfo correspondent aux points d’une courbe audio-conique qui sont calculés dans le logiciel par les méthodes IEndpointVolume::VolumeStepDown et IEndpointVolume::VolumeStepUp . Les deux méthodes calculent d’abord le niveau de volume idéalisé qui correspond au point suivant sur la courbe. Ensuite, la méthode sélectionne le paramètre de volume matériel qui est la meilleure approximation du niveau idéalisé. Pour plus d’informations sur les courbes audio-coniques, consultez Contrôles de volume audio-conique.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête endpointvolume.h

Voir aussi

IAudioEndpointVolume, interface

IAudioEndpointVolume::GetChannelVolumeLevel

IAudioEndpointVolume::GetMasterVolumeLevel

IAudioEndpointVolume::SetChannelVolumeLevel

IAudioEndpointVolume::SetMasterVolumeLevel

IEndpointVolume::GetVolumeStepInfo

IEndpointVolume::VolumeStepDown

IEndpointVolume::VolumeStepUp