用于执行处理的变量

[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

用于处理 BYTE 数量的延迟缓冲区处理的成员变量;它们是 BYTE 指针和存储字节计数的整数。 这非常适合处理 8 位音频,因为 8 位样本非常适合一个字节的内存。 不过,在处理 16 位音频时,将这些音频转换为 指针会更方便,因此一次可以处理两个字节。

以下示例代码分配新的 16 位指针,并添加一个用于存储延迟缓冲区末尾地址的指针变量。 将其插入循环入口点前面的“case 16”节中:

// Store local pointers to the delay buffer.
short    *pwDelayPointer = (short *)m_pbDelayPointer;
short    *pwDelayBuffer = (short *) m_pbDelayBuffer;
// Store the address of the last word of the delay buffer.
short    *pwEOFDelayBuffer = (short *)(m_pbDelayBuffer + m_cbDelayBuffer - sizeof(short)); 

用于 8 位处理的代码还会分配一个变量,用于存储延迟缓冲区末尾的地址。 存储此值可以轻松测试可移动延迟缓冲区指针是否已到达延迟缓冲区的末尾。 以下示例代码计算值:

// Store the address of the end of the delay buffer.
BYTE * pbEOFDelayBuffer = (m_pbDelayBuffer + m_cbDelayBuffer - sizeof(BYTE));

实现 CEcho::D oProcessOutput