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 obtenir 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 une 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 obtenir et définir le niveau de volume d’un appareil 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 une notification de la modification via l’interface IAudioEndpointVolumeCallback .

Comme expliqué dans Audio Sessions, Sndvol est le programme système de contrôle de volume. 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 d’un appareil particulier, cliquez sur Appareil dans la barre de menus et sélectionnez un nom d’appareil 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 seul contrôle de volume contrôlé par l’interface IAudioEndpointVolume . Les modifications apportées par l’utilisateur à ce contrôle de volume peuvent être surveillées via l’interface IAudioEndpointVolumeCallback .

La zone de groupe sur le côté droit de la fenêtre Sndvol est intitulée Applications. La zone Applications contient les contrôles de volume pour les applications qui partagent actuellement l’appareil. Pour les applications qui utilisent l’appareil en mode partagé, les contrôles de 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 via 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 via l’interface ISimpleAudioVolume , mais elle ne peut pas modifier les niveaux de volume des sessions qui appartiennent à d’autres applications non liées.

Toutefois, deux ou plusieurs applications associées (ou instances de la même application) 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 interprocesseur 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 les clients spécialisés qui nécessitent un contrôle sur les 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 cartes audio. Toutefois, les clients qui gèrent les 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. Tout d’abord, si un appareil de point de terminaison implémente un contrôle de volume matériel, l’API DeviceTopology exige que le client traverse la topologie de l’appareil à la recherche du contrôle matériel. En revanche, l’API EndpointVolume recherche 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 substitue automatiquement un contrôle de volume logiciel au contrôle matériel manquant.

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

Guide de programmation