XAPO 概述

XAPO API 允许创建跨平台音频处理对象 (XAPO) ,以便在 Windows 和 Xbox 360 上的 XAudio2 中使用。 XAPO 是一个对象,它接收传入的音频数据,并在传递数据之前对数据执行一些操作。 可以使用 XAPO 执行各种任务,包括向音频流添加混响和监视峰值音量级别。

创建新的 XAPOs

XAPO API 提供 IXAPO 接口和 CXAPOBase 类,用于生成新的 XAPO 类型。 IXAPO 接口包含创建新 XAPO 需要实现的所有方法。 CXAPOBase 类提供 IXAPO 接口的基本实现。 CXAPOBase 实现除每个 XAPO 唯一的 IXAPO::P rocess 方法之外的所有 IXAPO 接口方法。

有关创建新 XAPO 的示例,请参阅 如何:创建 XAPO

有关创建接受运行时参数的 XAPO 的示例,请参阅 如何:向 XAPO 添加运行时参数支持

XAPOs 和 COM

XAPOs 实现 IUnknown 接口。 IXAPOIXAPOParameters 接口包括三个 IUnknown 方法:QueryInterfaceAddRefRelease CXAPOBase 提供所有三个 IUnknown 方法的实现。 CXAPOBase 的新实例的引用计数为 1。 当它的引用计数变为 0 时,它将销毁它。 IXAPOIXAPOParameters 的实现应遵循相同的模式,以便在与 XAudio2 一起使用时进行适当的管理。

XAPO 实例作为 IUnknown 接口传递到 XAudio2。 XAudio2 使用 QueryInterface 获取 IXAPO 接口并检测 XAPO 是否实现 IXAPOParameters 接口。 IXAPO 的实现必须接受__uuidof (IXAPO) 的请求。 如果 实现 IXAPOParameters ,则它还必须接受 __uuidof (IXAPOParameters) 的请求。

在 XAudio2 中使用 XAPO

XAPOs 通过将其附加到语音在 XAudio2 中使用。 每个 XAudio2 语音都有一个包含零个或多个音频效果的效果链。 发送到语音的音频数据在发送到语音的输出目标之前,将通过链中的每个效果传递。 使用 IXAPO::P rocess 方法的 pInputProcessParameters 参数将数据从语音传递到每个效果。 然后使用 pOutputProcessParameters 参数将其返回到语音。 语音获取每个效果的输出,并将其馈送至链中的下一个效果,直到链中没有留下任何效果。

有关 XAudio2 效果链的详细信息,请参阅 XAudio2 音频效果

有关在 XAudio2 中使用 XAPO 的示例,请参阅 如何:在 XAudio2 中使用 XAPO

效果库

XAPO 效果库包含多个 XPO,以及实例化它们的常用方法。 有关 XAPOFX 的信息,请参阅 XAPOFX 概述。 此外,XAudio2 具有内置的混响和音量计效果。 有关内置 XAudio2 效果 的详细信息,请参阅 XAudio2 音频效果。

音频效果

XAudio2 音频效果