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

# CreateCaptureAudioStateMonitorForCategory

> CreateCaptureAudioStateMonitorForCategory

# CreateCaptureAudioStateMonitorForCategory

\[Algumas informações se referem a produtos em pré-lançamento que podem ser substancialmente modificados antes do lançamento comercial. A Microsoft não oferece garantias, expressas ou implícitas, com relação às informações fornecidas aqui.]

Cria uma nova instância de [IAudioStateMonitor](/pt-BR/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor) que monitora o nível de áudio de todos os fluxos de captura de áudio na categoria especificada.

## Sintaxe

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

### Parâmetros

*category*\
Tipo: AUDIO\_STREAM\_CATEGORY

Um membro da enumeração <a href="https://learn.microsoft.com/en-us/windows/desktop/api/audiosessiontypes/ne-audiosessiontypes-audio_stream_category" target="_blank">AUDIO\_STREAM\_CATEGORY</a> que especifica a categoria dos fluxos de captura de áudio a serem monitorados.

*audioStateMonitor* \[out]\
Tipo: IAudioStateMonitor\*\*

Este parâmetro de saída é preenchido com o objeto `IAudioStateMonitor` criado.

### Valor de retorno

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará `S\_OK`.

## Comentários

Esta é uma das funções que criam e retornam uma instância de `AudioStateMonitor`.

Há quatro variantes para cada fluxo de captura e de renderização que determinam
se um processo pode realizar uma das seguintes ações para uma determinada função:

* Capturar ou renderizar qualquer áudio de qualquer categoria
* Capturar ou renderizar áudio de uma categoria específica
* Capturar ou renderizar áudio de uma categoria específica, para um ponto de extremidade específico.\
  O ponto de extremidade pode ser especificado usando a ID `MMDevice` (obtida usando `IMMDevice::GetId()`) ou usando sua ID `SWD` (obtida usando `Windows.Devices.Enumeration` ou `Windows.Media.Devices.MediaDevice`)
* Capturar ou renderizar áudio de uma categoria específica para o ponto de extremidade padrão

Considere o cenário a seguir, em que um jogo deseja ativar sua funcionalidade GameChat no jogo somente quando sabe que o áudio não será silenciado pelas políticas do sistema operacional. Para isso, o jogo se registra para receber notificações de SoundLevel para a categoria de fluxo [AudioCategory\_GameChat](https://learn.microsoft.com/windows/win32/api/audiosessiontypes/ne-audiosessiontypes-audio_stream_category) no ponto de extremidade de comunicações padrão.

Se o SoundLevel dessa categoria for definido como 'Muted', o jogo interromperá sua sessão de GameChat. Se o SoundLevel for definido como qualquer outro valor, o jogo optará por ativar seu fluxo GameChat.

O exemplo de código a seguir mostra como o jogo pode criar um objeto `IAudioStateMonitor` adequado para esse cenário.

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

**Cabeçalho:** Audiostatemonitorapi.h

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

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

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

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

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


## Related topics

- [CreateCaptureAudioStateMonitorForCategory](/reference/audio/audiostatemonitor/functions/createcaptureaudiostatemonitorforcategory.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)
