EndpointVolume API

L’API EndpointVolume permet aux clients spécialisés de contrôler et de surveiller les niveaux de volume des appareils de point de terminaison audio. Un client obtient des références aux interfaces dans l’API EndpointVolume en obtenant l’interface IMMDevice d’un appareil de point de terminaison audio et en appelant la méthode IMMDevice::Activate .

Le fichier d’en-tête Endpointvolume.h définit les interfaces dans l’API EndpointVolume.

Les applications audio qui utilisent l’API MMDevice et WASAPI utilisent généralement l’interface ISimpleAudioVolume pour contrôler les niveaux de volume par session. Seuls deux types d’applications audio nécessitent l’utilisation de l’API EndpointVolume. Ces types d’applications sont les suivants :

  • Les applications qui gèrent les master les niveaux de volume des appareils de point de terminaison audio, comme le programme de contrôle de volume Windows, Sndvol.exe.
  • Applications audio professionnelles (« audio pro ») qui nécessitent un accès en mode exclusif aux appareils de point de terminaison audio.

Une utilisation inappropriée de l’API EndpointVolume peut interférer avec la stratégie audio Windows et perturber les paramètres de volume système de l’utilisateur.

Si un appareil de point de terminaison audio implémente des contrôles de volume matériel et de désactivation, l’API EndpointVolume utilise ces contrôles pour gérer le volume de l’appareil. Sinon, l’API EndpointVolume implémente les contrôles dans le logiciel, de manière transparente pour le client.

Si un appareil dispose de contrôles de volume matériel et de mise en sourdine, les modifications apportées aux paramètres de volume et de désactivation de l’appareil via l’API EndpointVolume affectent le niveau de volume en mode partagé et en mode exclusif. Si un appareil ne dispose pas de contrôles de volume matériel et de mise en sourdine, les modifications apportées au volume logiciel et aux contrôles de désactivation par le biais de l’API EndpointVolume affectent le niveau de volume en mode partagé, mais pas en mode exclusif. En mode exclusif, le client et l’appareil échangent directement des données audio, en contournant les contrôles logiciels.

Pour les applications qui doivent gérer le volume matériel et désactiver les contrôles, l’API EndpointVolume offre deux avantages potentiels par rapport à l’API DeviceTopology.

Tout d’abord, un certain nombre de périphériques de carte audio ne disposent pas de contrôles de volume matériels. Si un appareil ne dispose pas d’un contrôle de volume matériel, l’interface IAudioEndpointVolume de l’API EndpointVolume implémente automatiquement un contrôle de volume logiciel sur le flux vers ou à partir de cet appareil. Pour un client de l’API EndpointVolume, le résultat est le même, que le contrôle de volume soit implémenté dans le matériel par l’appareil ou dans le logiciel par l’interface API EndpointVolume.

Deuxièmement, même si l’appareil adaptateur implémente des contrôles de volume matériel, une application qui utilise l’API DeviceTopology pour implémenter un algorithme de traversée de topologie peut ne pas trouver le contrôle qu’elle recherche. En règle générale, une telle application est conçue pour parcourir la topologie matérielle d’un appareil ou d’un ensemble d’appareils associés. L’application risque d’échouer si elle tente de parcourir la topologie d’un appareil pour lequel elle n’a pas été spécifiquement conçue ou avec laquelle elle n’a pas été testée.

Seules les applications spécialisées qui doivent accéder à des fonctions matérielles autres que les contrôles de volume et de sourdine nécessitent l’utilisation de l’API DeviceTopology. Pour les applications qui nécessitent un contrôle uniquement du niveau de volume d’un flux en mode exclusif, l’API EndpointVolume est plus simple à utiliser et fonctionne de manière fiable avec un plus large éventail de périphériques matériels audio.

Pour obtenir des exemples de code qui utilisent les interfaces dans l’API EndpointVolume, consultez les rubriques suivantes :

Pour voir un exemple qui utilise l’API EndpointVolume, consultez EndpointVolume dans le Kit de développement logiciel (SDK) Windows.

L’API EndpointVolume implémente les interfaces suivantes.

Interface Description
IAudioEndpointVolume Représente les contrôles de volume sur le flux audio vers ou à partir d’un appareil de point de terminaison audio.
IAudioMeterInformation Représente un compteur de pointe sur le flux audio vers ou à partir d’un appareil de point de terminaison audio.

 

En outre, les clients de l’API EndpointVolume qui nécessitent une notification des modifications de volume et de désactivation dans les appareils de point de terminaison audio doivent implémenter l’interface suivante.

Interface Description
IAudioEndpointVolumeCallback Fournit des notifications lorsque le niveau de volume ou l’état de désactivation d’un appareil de point de terminaison audio change.

 

Contrôles de volume

IMMDevice Interface

IMMDevice::Activate

ISimpleAudioVolume

Guide de référence de programmation