Contrôles de volume

Les clients qui gèrent des flux en mode partagé utilisent généralement les interfaces ISimpleAudioVolume et IAudioSessionEvents dans WASAPI pour contrôler et surveiller les niveaux de volume de flux. Grâce aux méthodes de l’interface ISimpleAudioVolume , le client peut récupérer et définir les niveaux de volume des sessions audio auxquelles appartiennent les flux en mode partagé. Si sndvol ou une autre application modifie le niveau du volume de session, le client peut recevoir la notification de la modification via l’interface IAudioSessionEvents .

Les clients qui gèrent des flux en mode exclusif utilisent généralement les interfaces IAudioEndpointVolume et IAUDIOENDPOINTVOLUMECALLBACK dans l' API EndpointVolume pour contrôler et surveiller les niveaux de volume de flux. Grâce aux méthodes de l’interface IAudioEndpointVolume , le client peut récupérer et définir le niveau de volume d’un périphérique de point de terminaison audio. Si sndvol ou une autre application modifie le niveau de volume de l’appareil de point de terminaison, le client peut recevoir la notification de la modification par le biais de l’interface IAudioEndpointVolumeCallback .

Comme expliqué dans sessions audio, sndvol est le programme de contrôle du volume système. Il affiche des contrôles de volume pour les appareils de point de terminaison de rendu audio dans le système. (Actuellement, il n’affiche pas les contrôles de volume pour les appareils de point de terminaison de capture audio.) Pour afficher les contrôles de volume pour un appareil particulier, cliquez sur périphérique dans la barre de menus et sélectionnez un nom de périphérique dans la liste des appareils disponibles.

La fenêtre sndvol sépare les contrôles de volume d’un appareil en deux groupes. La zone de groupe sur le côté gauche de la fenêtre est intitulée appareil. La zone appareil contient un contrôle de volume unique contrôlé par l’interface IAudioEndpointVolume . Les modifications apportées par l’utilisateur à ce contrôle de volume peuvent être surveillées par le biais de l’interface IAudioEndpointVolumeCallback .

La zone de groupe sur le côté droit de la fenêtre sndvol s’intitule applications. La zone applications contient les contrôles de volume des applications qui partagent actuellement l’appareil. Pour les applications qui utilisent l’appareil en mode partagé, les contrôles du volume représentent les niveaux de volume contrôlés par l’interface ISimpleAudioVolume . Les modifications apportées par l’utilisateur à ces contrôles de volume peuvent être surveillées par le biais de l’interface IAudioSessionEvents .

Bien qu’une application en mode partagé puisse utiliser son interface IAudioSessionEvents pour surveiller les modifications apportées par l’utilisateur au contrôle de volume de l’application dans la zone applications de la fenêtre sndvol, l’application ne peut pas surveiller les modifications apportées aux contrôles de volume d’autres applications non liées. De même, une application peut modifier les niveaux de volume de ses sessions audio par le biais de l’interface ISimpleAudioVolume , mais elle ne peut pas modifier les niveaux de volume des sessions qui appartiennent à d’autres applications non liées.

Toutefois, au moins deux applications (ou instances de la même application) associées peuvent partager le même contrôle de volume dans la zone applications de la fenêtre sndvol en affectant leurs flux audio à la même session inter-processus ou en associant leurs sessions respectives au même paramètre de regroupement. Pour plus d’informations, consultez sessions audio et paramètres de regroupement.

WASAPI fournit deux interfaces supplémentaires, IChannelAudioVolume et IAudioStreamVolume, pour contrôler les niveaux de volume des flux en mode partagé. Ces interfaces sont principalement utilisées par des clients spécialisés qui requièrent le contrôle des niveaux de volume des canaux individuels dans une session ou des flux individuels dans une session.

L' API DeviceTopology permet aux clients d’accéder aux contrôles de volume dans les topologies des adaptateurs audio. Toutefois, les clients qui gèrent des flux en mode exclusif utilisent généralement l’API EndpointVolume au lieu de l’API DeviceTopology pour contrôler les niveaux de volume de flux. L’API EndpointVolume simplifie le contrôle du volume d’un appareil de point de terminaison de deux manières. Premièrement, si un périphérique de point de terminaison implémente un contrôle de volume matériel, l’API DeviceTopology nécessite que le client parcoure la topologie de l’appareil lors de la recherche du contrôle matériel. En revanche, l’API EndpointVolume détecte automatiquement le contrôle du volume matériel pour le client. Deuxièmement, si l’appareil de point de terminaison n’implémente pas de contrôle de volume matériel, un client DeviceTopology doit implémenter un contrôle de volume dans le logiciel. En revanche, l’API EndpointVolume remplace automatiquement un contrôle de volume logiciel pour le contrôle matériel manquant.

Les sections suivantes décrivent les contrôles de volume pour les sessions audio et les périphériques de point de terminaison audio :

Guide de programmation