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

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

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)](/pt-BR/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api)

## Confira também

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


## Related topics

- [XAudio2CreateWithSharedContexts](/reference/audio/xaudio2xbox/functions/xaudio2createwithsharedcontexts.md)
- [SHARED_SHAPE_CONTEXTS](/reference/audio/acphal/structs/shared_shape_contexts.md)
- [XDK vs GDK audio API comparison](/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [XDK と GDK のオーディオ API の比較](/ja-jp/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [XDK 与 GDK 音频 API 对比](/zh-CN/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
