MÉTHODE IMMDeviceEnumerator ::GetDefaultAudioEndpoint (mmdeviceapi.h)
La méthode GetDefaultAudioEndpoint récupère le point de terminaison audio par défaut pour la direction et le rôle de flux de données spécifiés.
Syntaxe
HRESULT GetDefaultAudioEndpoint(
[in] EDataFlow dataFlow,
[in] ERole role,
[out] IMMDevice **ppEndpoint
);
Paramètres
[in] dataFlow
Direction du flux de données pour l’appareil de point de terminaison. L’appelant doit définir ce paramètre sur l’une des deux valeurs d’énumération EDataFlow suivantes :
eRender
eCapture
La direction du flux de données pour un appareil de rendu est eRender. La direction du flux de données pour un appareil de capture est eCapture.
[in] role
Rôle de l’appareil de point de terminaison. L’appelant doit définir ce paramètre sur l’une des valeurs d’énumération ERole suivantes :
eConsole
eMultimedia
Communications électroniques
Pour plus d'informations, consultez la section Notes.
[out] ppEndpoint
Pointeur vers une variable de pointeur dans laquelle la méthode écrit l’adresse de l’interface IMMDevice de l’objet point de terminaison pour le périphérique de point de terminaison audio par défaut. Grâce à cette méthode, l’appelant obtient une référence comptée à l’interface. L’appelant est chargé de libérer l’interface, lorsqu’elle n’est plus nécessaire, en appelant la méthode Release de l’interface. Si l’appel GetDefaultAudioEndpoint échoue, *ppDevice a la valeur NULL.
Valeur retournée
Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.
Code de retour | Description |
---|---|
|
Le paramètre ppDevice a la valeur NULL. |
|
Le flux de données de paramètre ou le rôle est hors de portée. |
|
Aucun appareil n’est disponible. |
|
Mémoire insuffisante. |
Remarques
Remarque
Dans Windows Vista, l’API MMDevice prend en charge les rôles d’appareil , mais pas les programmes d’interface utilisateur fournis par le système. L’interface utilisateur de Windows Vista permet à l’utilisateur de sélectionner un périphérique audio par défaut pour le rendu et un périphérique audio par défaut pour la capture. Lorsque l’utilisateur modifie l’appareil de rendu ou de capture par défaut, le système attribue les trois rôles d’appareil (eConsole, eMultimedia et eCommunications) à cet appareil. Ainsi, GetDefaultAudioEndpoint sélectionne toujours l’appareil de rendu ou de capture par défaut, quel que soit le rôle indiqué par le paramètre de rôle . Dans une version ultérieure de Windows, l’interface utilisateur peut permettre à l’utilisateur d’attribuer des rôles individuels à différents appareils. Dans ce cas, la sélection d’un appareil de rendu ou de capture par GetDefaultAudioEndpoint peut dépendre du paramètre de rôle . Ainsi, le comportement d’une application audio développée pour s’exécuter dans Windows Vista peut changer lors de l’exécution dans une version ultérieure de Windows. Pour plus d’informations, consultez Rôles d’appareil dans Windows Vista.
Cette méthode récupère l’appareil de point de terminaison par défaut pour la direction du flux de données (rendu ou capture) et le rôle spécifiés. Par exemple, un client peut obtenir l’appareil de lecture de console par défaut en effectuant l’appel suivant :
hr = pDevEnum->GetDefaultAudioEndpoint(
eRender, eConsole, &pDeviceOut);
Dans le fragment de code précédent, la variable hr est de type HRESULT, pDevEnum est un pointeur vers une interface IMMDeviceEnumerator et pDeviceOut est un pointeur vers une interface IMMDevice .
Un système Windows peut contenir une combinaison d’appareils de point de terminaison audio tels que des haut-parleurs de bureau, des écouteurs haute fidélité, des microphones de bureau, des casques avec haut-parleur et des microphones, et des haut-parleurs multicanal haute fidélité. L’utilisateur peut attribuer des rôles appropriés aux appareils. Par exemple, une application qui gère les flux de communications vocales peut appeler GetDefaultAudioEndpoint pour identifier les appareils de rendu et de capture désignés pour ce rôle.
Si un seul appareil de rendu ou de capture est disponible, le système attribue toujours les trois rôles de rendu ou de capture à cet appareil. Si la méthode ne parvient pas à trouver un appareil de rendu ou de capture pour le rôle spécifié, cela signifie qu’aucun appareil de rendu ou de capture n’est disponible. Si aucun appareil n’est disponible, la méthode définit *ppEndpoint = NULL et retourne ERROR_NOT_FOUND.
Pour obtenir des exemples de code qui appellent la méthode GetDefaultAudioEndpoint , consultez les rubriques suivantes :
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mmdeviceapi.h |