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

Crea un nuevo objeto XAudio2 y devuelve un puntero a su interfaz IXAudio2.

## Sintaxis

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

Si la operación se realiza correctamente, devuelve un puntero a un objeto IXAudio2.

*Flags*   \_In\_\
Tipo: UINT32

Marcas que especifican el comportamiento del objeto IXAudio2.

| Marca                                    | Descripción                                                                                                                                       |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| XAUDIO2\_DO\_NOT\_USE\_SHAPE             | Se usa para impedir que el motor o la voz usen el motor de procesamiento de audio de hardware escalable (SHAPE), incluido XBOX Media Audio (XMA). |
| XAUDIO2\_DO\_NOT\_SHARE\_SHAPE\_CONTEXTS | Se usa para forzar el uso exclusivo de los contextos de SHAPE proporcionados. Ninguna otra instancia del motor compartirá los contextos.          |

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

Un valor de tipo XAUDIO2\_PROCESSOR que especifica qué CPU usar. Pasar XAUDIO2\_USE\_DEFAULT\_PROCESSOR permite a XAudio2 elegir el procesador ideal en tiempo de ejecución.

Especificar un procesador podría interferir con la capacidad del programador para planificar los subprocesos de forma eficaz entre procesadores. En su lugar, pase el valor XAUDIO2\_USE\_DEFAULT\_PROCESSOR.

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

Puntero a SHARED\_SHAPE\_CONTEXTS. Este parámetro es específico de XBOX One y permite que un título comparta recursos de SHAPE y XMA con XAudio2. El valor predeterminado es NULL.

### Valor devuelto

Tipo: XAUDIO2\_STDAPI

Si la función se ejecuta correctamente, devuelve `S_OK`.  Si uno o varios de los argumentos no son válidos, la función devuelve un código de error.

## Comentarios

`XAudio2CreateWithSharedContexts` funciona de la misma manera que la función `XAudio2Create`. Acepta un parámetro adicional para permitir que el estado del motor de procesamiento de audio de hardware escalable (SHAPE) en XBOX One se comparta entre varias instancias de IXAudio2. `PXAUDIO2_SHARED_SHAPE_CONTEXTS` es un puntero al estado compartido. XAudio2 usa contextos de SHAPE para la reproducción de XMA. Como característica, XMA se introdujo con XBOX 360. Si usa XAudio2 para reproducir audio XMA en la versión para XBOX 360 de su juego, o en un juego de XBOX One basado en el antiguo Software Development Kit de XBOX One, es esencial saber que Microsoft Game Development Kit (GDK) sigue admitiendo XMA y los contextos de SHAPE.

Para reproducir audio en formato XMA, su aplicación no tiene que usar la marca `XAudio2CreateWithSharedContexts`, porque la instancia de XAudio2 crea sus propios contextos de SHAPE. `XAudio2CreateWithSharedContexts` está optimizado para aplicaciones que tienen varias instancias de XAudio2. Permite a la aplicación asignar un único conjunto de contextos de SHAPE y compartirlos de forma eficiente entre instancias.

<Note>El parámetro `XAudio2Processor` debe usar el puntero `XAUDIO2_USE_DEFAULT_PROCESSOR` para permitir que el sistema realice la selección de procesador adecuada, a menos que la aplicación esté diseñada para seleccionar un procesador específico.</Note>

El parámetro `XAudio2Create` y la función `XAudio2CreateWithSharedContexts` usan marcas que se aplican a juegos que solo reproducen audio en formato XMA. Una aplicación no puede reproducir contenido XMA si se usa la marca `XAUDIO2_DO_NOT_USE_SHAPE`. Con XBOX 360, el audio XMA se descodifica por software o hardware, lo que requiere contextos de SHAPE. La nueva versión de Microsoft Game Development Kit (GDK) admite la descodificación de XMA por hardware. Especificar esta marca romperá en la práctica la reproducción de XMA.

Si la función llama a sus propios contextos de SHAPE, usa la marca `XAUDIO2_DO_NOT_SHARE_SHAPE_CONTEXTS` para especificar que los contextos de SHAPE son de uso exclusivo de esta instancia de XAudio2. No se recomienda especificar esta marca cuando no se proporcionan contextos de SHAPE (por ejemplo, al invocar `XAudio2Create`), porque cuando XAudio2 crea sus propios contextos de SHAPE, estos se comparten.

También puede usar la marca `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE`. Establecer esta marca impide que el DVR de juegos grabe el audio de la voz de masterización.

El encabezado también define la marca `AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAME_DVR_CAPTURE`. Pase esta marca a `IAudioClient::Initialize` para impedir que el DVR de juegos grabe el audio reproducido por ese *IAudioClient*. Si su juego usa XAudio2, use en su lugar la marca `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` para este fin.

Para obtener más información, consulte [Introducción a XAudio2](https://learn.microsoft.com/windows/win32/xaudio2/getting-started?redirectedfrom=MSDN).

## Requisitos

**Encabezado:** xaudio2Xbox.h

**Biblioteca:** xaudio2.lib

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

## Documentación conceptual

* [Comparación de las API de audio del Software Development Kit de XBOX One y de Microsoft Game Development Kit (GDK)](/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api)

## Consulte también

[Información general de XAudio2](/build/console-features/audio/overviews/xaudio2-overview)\
[Conceptos clave de XAudio2](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-key-concepts)\
[xaudio2xbox](/reference/audio/xaudio2xbox/xaudio2xbox_members)


## Related topics

- [SHARED_SHAPE_CONTEXTS](/es/reference/audio/acphal/structs/shared_shape_contexts.md)
- [Comparación de las API de audio del XDK y el GDK](/es/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [Uso de XAudio2 para reproducir un sonido](/es/build/console-features/audio/overviews/xaudio2-play-sound.md)
- [OpenSharedHandleByName](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_opensharedhandlebyname_public.md)
- [OpenSharedHandle](/es/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_opensharedhandle_public.md)
