XAudio2 版本
XAudio2 是一种跨平台 API,已在 Xbox 360 以及 Windows 版本(包括 Windows XP、Windows Vista、Windows 7 和 Windows 8)上提供使用。 在 Xbox 360 上,XAudio2 以静态库的形式发布,并编译到主游戏可执行文件中。 在 Windows 上,XAudio2 作为动态链接库 (DLL) 提供,该库安装在操作系统的系统文件夹中。
XAudio 2.9(Windows 10,可在 Windows 7 和 Windows 8.x 上再发行)
XAudio2 版本 2.9 作为 Windows 10 的一部分提供,XAUDIO2_9.DLL 与 XAudio 2.8 一起支持旧的应用程序。 XAudio 2.9 的可再发行版本也可用于 Windows 7 SP1、Windows 8 和 Windows 8.1。
XAudio2.9 已更新,并进行了以下更改:
- 新的创建标记:XAUDIO2_DEBUG_ENGINE、XAUDIO2_STOP_ENGINE_WHEN_IDLE、XAUDIO2_1024_QUANTUM
- 此版本的 XAudio2 中提供 xWMA 支持。
- Windows 10 版本的 XAudio 2.9 支持 CreateHrtfApo 函数。
- XAUDIO2FX_REVERB_PARAMETERS 现在包括 7.1 系统的 SideDelay 值。
- ReverbConvertI3DL2ToNative 函数现在包括启用 7.1 混响的布尔值 sevenDotOneReverb 参数。
XAudio 2.8 (Windows 8.x)
XAudio2 版本 2.8 现今作为 Windows 8 中的系统组件 XAUDIO2_8.DLL 提供。 它在“收件箱”中可用,不需要通过应用程序重新分发。 建议使用适用于 Windows 8 的 Windows 软件开发工具包 (SDK) 针对 XAudio2 进行开发;适用于 Windows 8 的 Windows SDK 包含用于静态链接 XAUDIO2_8.DLL 的必要标头和导入库。
XAudio2 2.8 已更新,并进行了以下更改:
- 此版本支持 UWP 应用开发;XAudio2 API 可用于 C++/DirectX UWP 应用。
- XAudio2Create 是一个扁平 Win32 API 调用,不再创建 XAudio2 CLSID。 已删除对通过 CoCreateInstance 实例化 XAudio2 的支持。
- Initialize 函数现在由创建过程隐式调用,并且已从 IXAudio2 接口中删除。
- XAudio2 已删除设备枚举功能;GetDeviceDetails 和 GetDeviceCount 函数已从 IXAudio2 接口中删除。 要呈现给系统上其他音频设备的应用必须将设备标识符字符串传递给 CreateMasteringVoice,而不是设备索引。 默认音频呈现设备仍然可以在没有枚举的情况下创建。
- IXAudio2MasteringVoice 添加了一个函数 IXAudio2MasteringVoice::GetChannelMask,用于返回目标输出设备的声道掩码。
- X3DAudio 和 XAPOFX 库合并到 XAudio2 中。 应用代码仍使用单独的标头 X3DAUDIO.H 和 XPOFX.H,但现在链接到单个导入库 XAUDIO2_8.LIB。
- 此版本的 XAudio2 不提供 xWMA 支持;调用 CreateSourceVoice 时,将不支持 xWMA 作为音频缓冲区格式。 现在,建议使用媒体基础源阅读器对象将各种媒体格式解码到内存中的 PCM 缓冲区中。
- CreateFX 现在需要四个参数而不是两个参数。 较新的参数将初始数据指定为 XAPOFX 创建的一部分。
XAudio 2.7 及更早版本 (Windows 7)
用于应用的所有早期版本的 XAudio2 都已作为 DirectX SDK 中的可再发行 DLL 提供。 XAudio2 的第一个版本 XAudio2 2.0 在 2008 年 3 月发布的 DirectX SDK 中发布。 DirectX SDK 中发布的最后一个版本是 XAudio2 2.7,该版本于 2010 年 6 月的 DirectX SDK 的最后一次发布中提供。
由于所有 SHA-1 签名内容停用,旧版 DirectX SDK 在 Microsoft 下载中不再可用。 2010 年 6 月是最后的发布。
以前版本的 XAudio2 不能用于为 Windows 8 生成 Windows 运行时 (WinRT) 应用。