> ## 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

Crea una nueva instancia de [IAudioStateMonitor](/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor) que supervisa el nivel de audio de todas las secuencias de captura de audio de la categoría especificada y con el rol especificado.

## Sintaxis

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

### Parámetros

*category*\
Tipo: AUDIO\_STREAM\_CATEGORY

Un miembro de la enumeración **AUDIO\_STREAM\_CATEGORY** que especifica la categoría de las secuencias de captura de audio que se van a supervisar.

*role*\
Tipo: ERole

Un miembro de la enumeración <a href="https://learn.microsoft.com/en-us/windows/desktop/api/mmdeviceapi/ne-mmdeviceapi-erole" target="_blank">ERole</a> que especifica el rol de las secuencias de captura de audio que se van a supervisar.

*audioStateMonitor* \_Out\_\
Tipo: IAudioStateMonitor\*\*

Este parámetro de salida se rellena con el objeto `IAudioStateMonitor` creado.

### Valor devuelto

Si el método se ejecuta correctamente, devuelve `S\_OK`.

## Comentarios

Esta es una de las funciones que crean y devuelven una instancia de `AudioStateMonitor`.

Hay cuatro variantes para las secuencias de captura y otras cuatro para las de representación, que determinan si un proceso puede hacer una de las siguientes acciones para un rol determinado:

* Capturar o representar cualquier audio de cualquier categoría
* Capturar o representar audio de una categoría específica
* Capturar o representar audio de una categoría específica, en un punto de conexión específico.\
  El punto de conexión puede especificarse mediante el identificador `MMDevice` (obtenido mediante `IMMDevice::GetId()`) o mediante su identificador `SWD` (obtenido mediante `Windows.Devices.Enumeration` o `Windows.Media.Devices.MediaDevice`)
* Capturar o representar audio de una categoría específica en el punto de conexión predeterminado

Considere el siguiente escenario, en el que un juego quiere activar su funcionalidad de GameChat en el juego solo cuando sabe que las directivas del sistema operativo no silenciarán el audio. Para ello, el juego se registra para recibir notificaciones de SoundLevel de la categoría de secuencia [AudioCategory\_GameChat](https://learn.microsoft.com/windows/win32/api/audiosessiontypes/ne-audiosessiontypes-audio_stream_category) en el punto de conexión de comunicaciones predeterminado.

Si el SoundLevel de esta categoría se establece en 'Muted', el juego detendrá su sesión de GameChat. Si el SoundLevel se establece en cualquier otro valor, el juego elige habilitar su secuencia de GameChat.

En el siguiente ejemplo de código se muestra cómo el juego puede crear un objeto `IAudioStateMonitor` adecuado para este escenario.

```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; 
} 
```

## Requisitos

**Encabezado:** Audiostatemonitorapi.h

**Biblioteca:** Windows.Media.MediaControl.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

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

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

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


## Related topics

- [Interfaz IAudioStateMonitor](/es/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor.md)
- [AudioStateMonitor](/es/reference/audio/audiostatemonitor/audiostatemonitor_members.md)
- [CreateRenderAudioStateMonitorForCategoryAndDeviceRole](/es/reference/audio/audiostatemonitor/functions/createrenderaudiostatemonitorforcategoryanddevicerole.md)
- [CreateCaptureAudioStateMonitorForCategoryAndDeviceId](/es/reference/audio/audiostatemonitor/functions/createcaptureaudiostatemonitorforcategoryanddeviceid.md)
- [CreateCaptureAudioStateMonitorForCategory](/es/reference/audio/audiostatemonitor/functions/createcaptureaudiostatemonitorforcategory.md)
