Méthode IAudioClient ::GetService (audioclient.h)
La méthode GetService accède à des services supplémentaires à partir de l’objet client audio.
Syntaxe
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Paramètres
[in] riid
ID d’interface du service demandé. Le client doit définir ce paramètre sur l’une des valeurs REFIID suivantes :
IID_IAudioCaptureClient
IID_IAudioClientDuckingControl
IID_IAudioClock
IID_IAudioRenderClient
IID_IAudioSessionControl
IID_IAudioStreamVolume
IID_IChannelAudioVolume
IID_IMFTrustedOutput
IID_ISimpleAudioVolume
Pour plus d'informations, consultez la section Notes.
[out] ppv
Pointeur vers une variable pointeur dans laquelle la méthode écrit l’adresse d’un instance de l’interface demandée. 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 GetService échoue, *ppv a lavaleur 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 ppv a la valeur NULL. |
|
L’interface demandée n’est pas disponible. |
|
Le flux audio n’a pas été initialisé. |
|
L’appelant a essayé d’accéder à une interface IAudioCaptureClient sur un point de terminaison de rendu ou à une interface IAudioRenderClient sur un point de terminaison de capture. |
|
Le périphérique de point de terminaison audio a été débranché, ou le matériel audio ou les ressources matérielles associées ont été reconfigurés, désactivés, supprimés ou autrement indisponibles. |
|
Le service audio Windows n’est pas en cours d’exécution. |
Remarques
Cette méthode nécessite une initialisation préalable de l’interface IAudioClient . Tous les appels à cette méthode échouent avec l’erreur AUDCLNT_E_NOT_INITIALIZED jusqu’à ce que le client initialise le flux audio en appelant correctement la méthode IAudioClient ::Initialize .
La méthode GetService prend en charge les interfaces de service suivantes :
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- IMFTrustedOutput
- ISimpleAudioVolume
Pour plus d’informations sur l’utilisation de pilotes audio approuvés dans les OTA, consultez Audio en mode utilisateur protégé (PUMA).
Notez que l’activation de IMFTrustedOutput par le biais de ce mécanisme fonctionne, que l’appelant s’exécute ou non dans PMP. Toutefois, si l’appelant n’est pas en cours d’exécution dans un processus protégé (autrement dit, l’appelant ne se trouve pas dans le PMP de Media Foundation), l’OTA audio peut ne pas fonctionner dans le PMP et les paramètres de protection sont moins robustes.
Pour obtenir l’ID d’interface d’une interface de service, utilisez l’opérateur __uuidof . Par exemple, l’ID d’interface de IAudioCaptureClient est défini comme suit :
const IID IID_IAudioCaptureClient __uuidof(IAudioCaptureClient)
Pour plus d’informations sur l’opérateur __uuidof, consultez la documentation SDK Windows.
Pour libérer l’objet IAudioClient et libérer toutes ses ressources associées, le client doit libérer toutes les références à tous les objets de service créés en appelant GetService, en plus d’appeler Release sur l’interface IAudioClient elle-même. Le client doit libérer un service à partir du même thread que celui qui libère l’objet IAudioClient .
Les interfaces IAudioSessionControl, IAudioStreamVolume, IChannelAudioVolume et ISimpleAudioVolume contrôlent et surveillent les aspects des sessions audio et des flux en mode partagé. Ces interfaces ne fonctionnent pas avec des flux en mode exclusif.
Pour obtenir des exemples de code qui appellent la méthode GetService , consultez les rubriques suivantes :
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 | audioclient.h |
Voir aussi
IAudioSessionControl, interface