> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CreateCaptureAudioStateMonitorForCategoryAndDeviceRole

> CreateCaptureAudioStateMonitorForCategoryAndDeviceRole

# CreateCaptureAudioStateMonitorForCategoryAndDeviceRole

Crée une nouvelle instance de [IAudioStateMonitor](/fr-CA/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor) qui surveille le niveau audio de tous les flux de capture audio de la catégorie spécifiée et ayant le rôle spécifié.

## Syntaxe

```cpp theme={null}
HRESULT WINAPI CreateCaptureAudioStateMonitorForCategoryAndDeviceRole(
  AUDIO_STREAM_CATEGORY category,
  ERole role,
  _Out_ IAudioStateMonitor **audioStateMonitor
);
```

### Paramètres

*category*\
Type : AUDIO\_STREAM\_CATEGORY

Membre de l'énumération **AUDIO\_STREAM\_CATEGORY** qui spécifie la catégorie des flux de capture audio à surveiller.

*role*\
Type : ERole

Membre de l'énumération <a href="https://learn.microsoft.com/en-us/windows/desktop/api/mmdeviceapi/ne-mmdeviceapi-erole" target="_blank">ERole</a> qui spécifie le rôle des flux de capture audio à surveiller.

*audioStateMonitor* \_Out\_\
Type : IAudioStateMonitor\*\*

Ce paramètre de sortie est rempli avec l'objet `IAudioStateMonitor` créé.

### Valeur de retour

Si la méthode réussit, elle retourne `S\_OK`.

## Remarques

Il s'agit de l'une des fonctions qui créent et retournent une instance `AudioStateMonitor`.

Il existe quatre variantes pour chacun des flux de capture et de restitution, qui déterminent si un processus peut effectuer l'une des actions suivantes pour un rôle donné :

* Capturer ou restituer tout audio de n'importe quelle catégorie
* Capturer ou restituer de l'audio d'une catégorie particulière
* Capturer ou restituer de l'audio d'une catégorie particulière, vers un point de terminaison particulier.\
  Le point de terminaison peut être spécifié à l'aide de l'ID `MMDevice` (obtenu à l'aide de `IMMDevice::GetId()`), ou à l'aide de son ID `SWD` (obtenu à l'aide de `Windows.Devices.Enumeration` ou de `Windows.Media.Devices.MediaDevice`)
* Capturer ou restituer de l'audio d'une catégorie particulière vers le point de terminaison par défaut

Considérez le scénario suivant, dans lequel un jeu souhaite activer sa fonctionnalité GameChat en jeu uniquement lorsqu'il sait que l'audio ne sera pas mis en sourdine par les stratégies du système d'exploitation. Pour ce faire, le jeu s'inscrit aux notifications SoundLevel pour la catégorie de flux [AudioCategory\_GameChat](https://learn.microsoft.com/windows/win32/api/audiosessiontypes/ne-audiosessiontypes-audio_stream_category) sur le point de terminaison de communications par défaut.

Si le SoundLevel de cette catégorie est réglé à 'Muted', le jeu arrêtera sa session GameChat. Si le SoundLevel est réglé à toute autre valeur, le jeu choisit d'activer son flux GameChat.

L'exemple de code suivant montre comment le jeu peut créer un objet `IAudioStateMonitor` approprié pour ce scénario.

```cpp theme={null}
HRESULT RegisterForSoundLevelChanges() 
{ 
HRESULT hr = S_OK; 

// Create a new AudioStateMonitor for the GameChat category, if needed, and 
// register for callbacks. 
if (m_audioStateMonitor == nullptr) 
{ 
hr = CreateCaptureAudioStateMonitorForCategoryAndDeviceRole( 
AudioCategory_GameChat, ERole::eCommunications, 
g_audioStateMonitor.put()); 
if (SUCCEEDED(hr)) 
{ 
// Optional "context" parameter is not used in this example, 
// and is set to nullptr. 
hr = g_audioStateMonitor->RegisterCallback(OnAudioStateMonitorCallback, nullptr, &m_registration); 
} 
} 

if (FAILED(hr)) 
{ 
// g_audioStateMonitor is a smart pointer, so if an IAudioStateMonitor was 
// allocated, setting the smart pointer to null invokes the Release method 
// which will decrement its usage count and ensure that the object is properly 
// destroyed. 
g_audioStateMonitor = nullptr; 
} 
return hr; 
} 
```

## Configuration requise

**En-tête :** Audiostatemonitorapi.h

**Bibliothèque :** Windows.Media.MediaControl.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[AUDIO\_STREAM\_CATEGORY](https://learn.microsoft.com/windows/win32/api/audiosessiontypes/ne-audiosessiontypes-audio_stream_category)

[À propos de WASAPI](https://learn.microsoft.com/windows/desktop/CoreAudio/wasapi)

[WASAPI](/fr-CA/build/console-features/audio/overviews/wasapi-overview)


## Related topics

- [CreateCaptureAudioStateMonitorForCategoryAndDeviceRole](/reference/audio/audiostatemonitor/functions/createcaptureaudiostatemonitorforcategoryanddevicerole.md)
- [IAudioStateMonitor interface](/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor.md)
- [AudioStateMonitor](/reference/audio/audiostatemonitor/audiostatemonitor_members.md)
- [Interfaz IAudioStateMonitor](/es/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor.md)
- [IAudioStateMonitor 接口](/zh-CN/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor.md)
