Share via


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

La méthode SetChannelVolumeLevel définit le niveau de volume, en décibels, du canal spécifié du flux audio qui entre ou quitte le périphérique de point de terminaison audio.

Syntaxe

HRESULT SetChannelVolumeLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

Paramètres

[in] nChannel

Numéro de canal. Si le flux audio contient n canaux, les canaux sont numérotés de 0 à n– 1. Pour obtenir le nombre de canaux, appelez la méthode IAudioEndpointVolume ::GetChannelCount .

[in] fLevelDB

Nouveau niveau de volume en décibels. Pour obtenir la plage et la granularité des niveaux de volume qui peuvent être définis par cette méthode, appelez la méthode IAudioEndpointVolume ::GetVolumeRange .

[in] pguidEventContext

Valeur de contexte pour la méthode IAudioEndpointVolumeCallback ::OnNotify . Ce paramètre pointe vers un GUID de contexte d’événement. Si l’appel SetChannelVolumeLevel modifie le niveau de volume du point de terminaison, tous les clients qui ont inscrit des interfaces IAudioEndpointVolumeCallback avec ce point de terminaison recevront des notifications. Dans son implémentation de la méthode OnNotify , un client peut inspecter le GUID de contexte d’événement pour découvrir s’il ou un autre client est la source de l’événement de modification de volume. Si l’appelant fournit un pointeur NULL pour ce paramètre, la routine de notification reçoit la valeur GUID de contexte GUID_NULL.

Valeur retournée

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

Code de retour Description
E_INVALIDARG
Le paramètre nChannel est supérieur ou égal au nombre de canaux dans le flux ; ou le paramètre fLevelDB se trouve en dehors de la plage de volumes prise en charge par l’appareil.
E_OUTOFMEMORY
Mémoire insuffisante.

Remarques

Si le niveau de volume fLevelDB se trouve en dehors de la plage de volumes signalée par la méthode IAudioEndpointVolume ::GetVolumeRange , l’appel SetChannelVolumeLevel échoue et retourne le code d’erreur E_INVALIDARG.

Configuration requise

Condition requise Valeur
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 ::GetChannelCount

IAudioEndpointVolume ::GetVolumeRange

IAudioEndpointVolumeCallback, interface

IAudioEndpointVolumeCallback ::OnNotify