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

建立新的 XAudio2 物件，並傳回其 IXAudio2 介面的指標。

## 語法

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

### 參數

*ppXAudio2*   \_Outptr\_\
類型：IXAudio2\*\*

如果作業成功，會傳回 IXAudio2 物件的指標。

*Flags*   \_In\_\
類型：UINT32

指定 IXAudio2 物件行為的旗標。

| 旗標 | 描述 |
| - | - |
| XAUDIO2\_DO\_NOT\_USE\_SHAPE | 用來防止引擎或語音使用可擴充硬體音訊處理引擎 (SHAPE)，包括 XBOX Media Audio (XMA)。 |
| XAUDIO2\_DO\_NOT\_SHARE\_SHAPE\_CONTEXTS | 用來強制獨佔使用所提供的 SHAPE 內容。其他引擎執行個體都不會共用這些內容。 |

*XAudio2Processor*   \_In\_\
類型：XAUDIO2\_PROCESSOR

指定要使用哪個 CPU 的 XAUDIO2\_PROCESSOR 類型值。傳遞 XAUDIO2\_USE\_DEFAULT\_PROCESSOR 可讓 XAudio2 在執行階段選擇理想的處理器。

指定處理器可能會干擾排程器在各處理器之間有效排程執行緒的能力。請改為傳遞 XAUDIO2\_USE\_DEFAULT\_PROCESSOR 值。

*SharedShapeContexts*   \_In\_\
類型：PXAUDIO2\_SHARED\_SHAPE\_CONTEXTS

SHARED\_SHAPE\_CONTEXTS 的指標。此參數專屬於 XBOX One，可讓遊戲與 XAudio2 共用 SHAPE 和 XMA 資源。預設值為 NULL。

### 傳回值

類型：XAUDIO2\_STDAPI

如果函式成功，會傳回 `S_OK`。如果一或多個引數無效，函式會傳回錯誤碼。

## 備註

`XAudio2CreateWithSharedContexts` 的運作方式與 `XAudio2Create` 函式相同。它多接受一個參數，讓 XBOX One 上可擴充硬體音訊處理引擎 (SHAPE) 的狀態可以在多個 IXAudio2 執行個體之間共用。`PXAUDIO2_SHARED_SHAPE_CONTEXTS` 是共用狀態的指標。XAudio2 使用 SHAPE 內容進行 XMA 播放。XMA 這項功能是隨 XBOX 360 推出的。如果您在遊戲的 XBOX 360 版本中，或在以舊版 XBOX One Software Development Kit 為基礎的 XBOX One 遊戲中使用 XAudio2 播放 XMA 音訊，請務必了解 Microsoft Game Development Kit (GDK) 仍持續支援 XMA 和 SHAPE 內容。

若要播放 XMA 格式的音訊，您的應用程式不必使用 `XAudio2CreateWithSharedContexts` 旗標，因為 XAudio2 執行個體會建立自己的 SHAPE 內容。`XAudio2CreateWithSharedContexts` 已針對具有多個 XAudio2 執行個體的應用程式最佳化。它可讓應用程式配置一組 SHAPE 內容，並在各執行個體之間有效率地共用。

<Note>除非應用程式設計為選取特定處理器，否則 `XAudio2Processor` 參數應使用 `XAUDIO2_USE_DEFAULT_PROCESSOR` 指標，讓系統做出適當的處理器選擇。</Note>

`XAudio2Create` 參數和 `XAudio2CreateWithSharedContexts` 函式使用的旗標適用於只播放 XMA 格式音訊的遊戲。如果使用 `XAUDIO2_DO_NOT_USE_SHAPE` 旗標，應用程式將無法播放 XMA 內容。在 XBOX 360 上，XMA 音訊是在軟體或硬體中解碼，這需要 SHAPE 內容。新版 Microsoft Game Development Kit (GDK) 支援在硬體中進行 XMA 解碼。指定此旗標實際上會破壞 XMA 播放。

如果函式呼叫自己的 SHAPE 內容，它會使用 `XAUDIO2_DO_NOT_SHARE_SHAPE_CONTEXTS` 旗標，指定這些 SHAPE 內容僅供此 XAudio2 執行個體獨佔使用。不建議在未提供 SHAPE 內容時 (例如叫用 `XAudio2Create` 時) 指定此旗標，因為當 XAudio2 建立自己的 SHAPE 內容時，這些內容是共用的。

您也可以使用 `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` 旗標。設定此旗標可防止遊戲 DVR 錄製來自主控語音的音訊。

標頭也定義了 `AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAME_DVR_CAPTURE` 旗標。將此旗標傳遞給 `IAudioClient::Initialize`，可停用遊戲 DVR 錄製該 *IAudioClient* 所播放的音訊。如果您的遊戲使用 XAudio2，請改用 `XAUDIO2_EXCLUDE_FROM_GAME_DVR_CAPTURE` 旗標來達到此目的。

如需詳細資訊，請參閱[開始使用 XAudio2](https://learn.microsoft.com/windows/win32/xaudio2/getting-started?redirectedfrom=MSDN)。

## 需求

**標頭：** xaudio2Xbox.h

**程式庫：** xaudio2.lib

**支援的平台：** XBOX One 系列主機和 XBOX Series 主機

## 概念文件

* [XBOX One Software Development Kit 與 Microsoft Game Development Kit (GDK) 音訊 API 的比較](/zh-TW/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api)

## 另請參閱

[XAudio2 概觀](/zh-TW/build/console-features/audio/overviews/xaudio2-overview)\
[XAudio2 重要概念](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-key-concepts)\
[xaudio2xbox](/zh-TW/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)
