CXAPOBase::P rocessThru 方法 (xapobase.h)
当禁用 XAPO 进行直通处理时,由 IXAPO::P rocess 实现调用。
语法
void ProcessThru(
const void *pInputBuffer,
FLOAT32 *pOutputBuffer,
UINT32 FrameCount,
UINT32 InputChannelCount,
UINT32 OutputChannelCount,
BOOL MixWithOutput
);
参数
pInputBuffer
指向包含输入音频数据的缓冲区的指针。
pOutputBuffer
指向将包含已处理音频数据的缓冲区的指针。
FrameCount
要处理的音频数据的帧数,其中帧是一个样本块,每个音频数据通道一个。
InputChannelCount
输入数据缓冲区中的通道数。
OutputChannelCount
输出数据缓冲区中的通道数。
MixWithOutput
如果为 TRUE,则与目标缓冲区混合,如果为 FALSE,则覆盖目标缓冲区。
返回值
无
备注
ProcessThru 将数据从源复制到目标/混合,对音频数据进行尽可能少的更改。 但是, ProcessThru 能够通道向上混合/下混合,并使用 Windows Vista 使用的相同矩阵系数表来执行此操作。
在以下的情况下,可以调用此函数:
- XAPO 已锁定并禁用。
- 源帧数等于目标帧数。
- 输出格式为FLOAT32。
- 输入格式为 INT8、INT16、INT20 (包含在 24 位或 32 位) 中,INT24 (包含在 24 位或 32 位) 、INT32 或 FLOAT32中。
编写 ProcessThru 方法时,请务必注意 XAudio2 音频数据是交错的,来自每个通道的数据对于特定样本数是相邻的。 例如,如果有 4 声道波在 XAudio2 源语音中播放,则音频数据将是通道 0 的样本、通道 1 的样本、通道 2 的样本、通道 3 的样本,然后是通道 0、1、2、3 的下一个样本,等等。
平台要求
Windows 10 (XAudio2.9) ;Windows 8、Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)要求
目标平台 | Windows |
标头 | xapobase.h |
Library | XAPOBase.lib |