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

# XAudio2CreateWithSharedContexts

> XAudio2CreateWithSharedContexts

# XAudio2CreateWithSharedContexts

Cria um novo objeto XAudio2 e retorna um ponteiro para sua interface IXAudio2.

## Sintaxe

```cpp theme={null}
XAUDIO2_STDAPI XAudio2CreateWithSharedContexts(  
         IXAudio2** ppXAudio2,  
         UINT32 Flags,  
         XAUDIO2_PROCESSOR XAudio2Processor,  
         const PXAUDIO2_SHARED_SHAPE_CONTEXTS SharedShapeContexts  
)  
```

### Parâmetros

*ppXAudio2*   \_Outptr\_\
Tipo: IXAudio2\*\*

Se a operação for bem-sucedida, retorna um ponteiro para um objeto IXAudio2.

*Flags*   \_In\_\
Tipo: UINT32

Sinalizadores que especificam o comportamento do objeto IXAudio2.

| Sinalizador | Descrição |
| - | - |
| XAUDIO2\_DO\_NOT\_USE\_SHAPE | Usado para impedir que o mecanismo ou a voz use o SHAPE (Scalable Hardware Audio Processing Engine), incluindo o XMA (XBOX Media Audio). |
| XAUDIO2\_DO\_NOT\_SHARE\_SHAPE\_CONTEXTS | Usado para forçar o uso exclusivo dos contextos SHAPE fornecidos. Nenhuma outra instância do mecanismo compartilhará os contextos. |

*XAudio2Processor*   \_In\_\
Tipo: XAUDIO2\_PROCESSOR

Um valor do tipo XAUDIO2\_PROCESSOR que especifica qual CPU usar. Passar XAUDIO2\_USE\_DEFAULT\_PROCESSOR permite que o XAudio2 escolha o processador ideal em tempo de execução.

Especificar um processador pode interferir na capacidade do agendador de agendar threads de forma eficaz entre os processadores. Em vez disso, passe o valor XAUDIO2\_USE\_DEFAULT\_PROCESSOR.

*SharedShapeContexts*   \_In\_\
Tipo: PXAUDIO2\_SHARED\_SHAPE\_CONTEXTS

Ponteiro para SHARED\_SHAPE\_CONTEXTS. Esse parâmetro é específico do XBOX One e permite que um título compartilhe recursos de SHAPE e XMA com o XAudio2. O padrão é NULL.

### Valor de retorno

Tipo: XAUDIO2\_STDAPI

Se a função for bem-sucedida, retornará `S_OK`.  Se um ou mais argumentos forem inválidos, a função retornará um código de erro.

## Comentários

`XAudio2CreateWithSharedContexts` funciona da mesma forma que a função `XAudio2Create`. Ela usa um parâmetro extra para permitir que o estado do SHAPE (Scalable Hardware Audio Processing Engine) no XBOX One seja compartilhado entre várias instâncias de IXAudio2. `PXAUDIO2_SHARED_SHAPE_CONTEXTS` é um ponteiro para o estado compartilhado. O XAudio2 usa contextos SHAPE para a reprodução de XMA. Como recurso, o XMA foi introduzido com o XBOX 360. Se você usa o XAudio2 para reproduzir áudio XMA na versão para XBOX 360 do seu jogo, ou em um jogo de XBOX One baseado no antigo XBOX One Software Development Kit, é essencial saber que o Microsoft Game Development Kit (GDK) continua dando suporte a XMA e a contextos SHAPE.

Para reproduzir áudio no formato XMA, seu aplicativo não precisa usar o sinalizador `XAudio2CreateWithSharedContexts`, pois a instância do XAudio2 cria os próprios contextos SHAPE. `XAudio2CreateWithSharedContexts` é otimizado para aplicativos que têm várias instâncias do XAudio2. Ele permite que o aplicativo aloque um único conjunto de contextos SHAPE e os compartilhe de forma eficiente entre as instâncias.

> [!NOTE]
>
> O parâmetro `XAudio2Processor` deve usar o ponteiro `XAUDIO2_USE_DEFAULT_PROCESSOR` para permitir que o sistema faça a seleção de processador apropriada, a menos que o aplicativo tenha sido projetado para selecionar um processador específico.

O parâmetro `XAudio2Create` e a função `XAudio2CreateWithSharedContexts` usam sinalizadores aplicáveis a jogos que reproduzem somente áudio no formato XMA. Um aplicativo não consegue reproduzir conteúdo XMA se o sinalizador `XAUDIO2_DO_NOT_USE_SHAPE` for usado. Com o XBOX 360, o áudio XMA é decodificado no software ou no hardware, o que requer contextos SHAPE. A nova versão do Microsoft Game Development Kit (GDK) dá suporte à decodificação de XMA no hardware. Especificar esse sinalizador efetivamente interromperá a reprodução de XMA.

Se a função chamar os próprios contextos SHAPE, ela usará o sinalizador `XAUDIO2_DO_NOT_SHARE_SHAPE_CONTEXTS` para especificar que os contextos SHAPE são para uso exclusivo dessa instância do XAudio2. Não é recomendável especificar esse sinalizador quando os contextos SHAPE não forem fornecidos (por exemplo, ao invocar `XAudio2Create`), pois, quando o XAudio2 cria os próprios contextos SHAPE, eles são compartilhados.

Você também pode usar o sinalizador `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE`. Definir esse sinalizador impede que o DVR de jogos grave o áudio da voz de masterização.

O cabeçalho também define o sinalizador `AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAME_DVR_CAPTURE`. Passe esse sinalizador para `IAudioClient::Initialize` para impedir que o DVR de jogos grave o áudio reproduzido por esse *IAudioClient*. Se o seu jogo usa o XAudio2, use o sinalizador `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` para essa finalidade.

Para obter mais informações, consulte [Introdução ao XAudio2](https://learn.microsoft.com/windows/win32/xaudio2/getting-started?redirectedfrom=MSDN).

## Requisitos

**Cabeçalho:** xaudio2Xbox.h

**Biblioteca:** xaudio2.lib

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

## Documentação conceitual

* [Comparação entre as APIs de áudio do XBOX One Software Development Kit e do Microsoft Game Development Kit (GDK)](https://docs.xbox.com/pt-BR/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)

## Confira também

[Visão geral do XAudio2](https://docs.xbox.com/pt-BR/build/console-features/audio/overviews/xaudio2-overview.md)\
[Principais conceitos do XAudio2](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-key-concepts)\
[xaudio2xbox](https://docs.xbox.com/pt-BR/reference/audio/xaudio2xbox/xaudio2xbox_members.md)


## Related topics

- [SHARED_SHAPE_CONTEXTS](https://docs.xbox.com/pt-BR/reference/audio/acphal/structs/shared_shape_contexts.md)
- [XAudio2Xbox](https://docs.xbox.com/pt-BR/reference/audio/xaudio2xbox/xaudio2xbox_members.md)
- [Comparação das APIs de áudio do XDK e do GDK](https://docs.xbox.com/pt-BR/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [Create Shared Group](https://docs.xbox.com/api-reference/shared-group-data/create-shared-group.md)
- [Create Player Shared Secret](https://docs.xbox.com/api-reference/authentication/create-player-shared-secret.md)
