Skip to main content

XAudio2CreateWithSharedContexts

创建一个新的 XAudio2 对象,并返回指向其 IXAudio2 接口的指针。

Syntax

Parameters

ppXAudio2   _Outptr_
Type: IXAudio2**
如果操作成功,则返回指向 IXAudio2 对象的指针。 Flags   _In_
Type: UINT32
指定 IXAudio2 对象行为的标志。 XAudio2Processor   _In_
Type: XAUDIO2_PROCESSOR
一个 XAUDIO2_PROCESSOR 类型的值,用于指定要使用的 CPU。传递 XAUDIO2_USE_DEFAULT_PROCESSOR 可让 XAudio2 在运行时选择理想的处理器。 指定处理器可能会干扰调度程序在多个处理器间高效调度线程的能力。建议改为传递 XAUDIO2_USE_DEFAULT_PROCESSOR 值。 SharedShapeContexts   _In_
Type: PXAUDIO2_SHARED_SHAPE_CONTEXTS
指向 SHARED_SHAPE_CONTEXTS 的指针。此参数仅适用于 XBOX One,允许游戏与 XAudio2 共享 SHAPE 和 XMA 资源。默认值为 NULL。

Return value

Type: XAUDIO2_STDAPI 如果函数成功,则返回 S_OK。如果一个或多个参数无效,则该函数返回错误代码。

Remarks

XAudio2CreateWithSharedContexts 的工作方式与 XAudio2Create 函数相同。它增加了一个额外参数,以允许 XBOX One 上的可扩展硬件音频处理引擎 (SHAPE) 状态在多个 IXAudio2 实例之间共享。PXAUDIO2_SHARED_SHAPE_CONTEXTS 是指向共享状态的指针。XAudio2 使用 SHAPE 上下文进行 XMA 播放。作为一项功能,XMA 是随 XBOX 360 引入的。如果你在游戏的 XBOX 360 版本中,或在基于较早的 XBOX One 软件开发工具包的 XBOX One 游戏中使用 XAudio2 来播放 XMA 音频,则务必了解 Microsoft 游戏开发工具包 (GDK) 仍然支持 XMA 和 SHAPE 上下文。 若要播放 XMA 格式的音频,你的应用不必使用 XAudio2CreateWithSharedContexts 标志,因为 XAudio2 实例会创建自己的 SHAPE 上下文。XAudio2CreateWithSharedContexts 针对具有多个 XAudio2 实例的应用进行了优化。它允许应用分配一组 SHAPE 上下文,并在多个实例之间高效共享它们。
XAudio2Processor 参数应使用 XAUDIO2_USE_DEFAULT_PROCESSOR 指针来允许系统进行适当的处理器选择,除非应用被设计为选择特定的处理器。
XAudio2Create 参数和 XAudio2CreateWithSharedContexts 函数使用的标志适用于仅播放 XMA 格式音频的游戏。如果使用了 XAUDIO2_DO_NOT_USE_SHAPE 标志,应用将无法播放 XMA 内容。在 XBOX 360 上,XMA 音频在软件或硬件中解码,这需要 SHAPE 上下文。新版本的 Microsoft 游戏开发工具包 (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 入门

Requirements

头文件: xaudio2Xbox.h 库: xaudio2.lib 支持的平台: XBOX One 系列主机和 XBOX Series 主机

Conceptual documentation

See also

XAudio2 概述
XAudio2 关键概念
xaudio2xbox
最后修改于 2026年8月24日