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 |
---|---|
|
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