Share via


IAudioSessionEvents ::OnChannelVolumeChanged, méthode (audiopolicy.h)

La méthode OnChannelVolumeChanged informe le client que le niveau de volume d’un canal audio dans le sous-mix de session a changé.

Syntaxe

HRESULT OnChannelVolumeChanged(
  [in] DWORD    ChannelCount,
  [in] float [] NewChannelVolumeArray,
  [in] DWORD    ChangedChannel,
  [in] LPCGUID  EventContext
);

Paramètres

[in] ChannelCount

Nombre de canaux. Ce paramètre spécifie le nombre de canaux audio dans le sous-mix de session.

[in] NewChannelVolumeArray

Pointeur vers un tableau de niveaux de volume. Chaque élément est une valeur de type float qui spécifie le niveau de volume pour un canal particulier. Chaque niveau de volume est une valeur comprise entre 0,0 et 1,0, où 0,0 est silence et 1.0 est un volume complet (aucune atténuation). Le nombre d’éléments dans le tableau est spécifié par le paramètre ChannelCount . Si un flux audio contient n canaux, les canaux sont numérotés de 0 à n– 1. L’élément de tableau dont l’index correspond au numéro de canal, contient le niveau de volume de ce canal. Supposons que le tableau reste valide uniquement pendant la durée de l’appel.

[in] ChangedChannel

Numéro du canal dont le niveau de volume a changé. Utilisez cette valeur comme index dans le tableau NewChannelVolumeArray . Si le sous-mix de session contient n canaux, les canaux sont numérotés de 0 à n– 1. Si plusieurs canaux peuvent avoir changé (par exemple, à la suite d’un appel à la méthode IChannelAudioVolume ::SetAllVolumes ), la valeur de ChangedChannel est (DWORD)(–1).

[in] EventContext

Valeur du contexte d’événement. Il s’agit de la même valeur que celle que l’appelant a passée à la méthode IChannelAudioVolume ::SetChannelVolume ou IChannelAudioVolume ::SetAllVolumes dans l’appel qui a initié la modification du niveau de volume du canal. Pour plus d'informations, consultez la section Notes.

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d'échec, retourne un code d'erreur.

Remarques

Le gestionnaire de session appelle cette méthode chaque fois qu’un appel à la méthode IChannelAudioVolume ::SetChannelVolume ou IChannelAudioVolume ::SetAllVolumes met à jour correctement le niveau de volume d’un ou plusieurs canaux dans le sous-mélange de session. Notez que l’appel OnChannelVolumeChanged se produit, que le nouveau niveau de volume de canal ou les niveaux diffèrent en valeur du ou des niveaux de volume de canal précédents.

Le paramètre EventContext permet à un client de faire la distinction entre une modification de canal-volume qu’il a initiée et une modification initiée par un autre client. Lors de l’appel de la méthode IChannelAudioVolume ::SetChannelVolume ou IChannelAudioVolume ::SetAllVolumes , un client transmet une valeur de paramètre EventContext que son implémentation de la méthode OnChannelVolumeChanged peut reconnaître.

Pour obtenir un exemple de code qui implémente les méthodes dans l’interface IAudioSessionEvents , consultez Événements de session audio.

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 audiopolicy.h

Voir aussi

IAudioSessionEvents Interface

IChannelAudioVolume ::SetAllVolumes

IChannelAudioVolume ::SetChannelVolume