使用 High-Resolution PCM 音频

[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

Windows Media Audio 9 专业编解码器和 Windows Media Audio 9 无损编解码器的某些输入格式是高分辨率 PCM 格式。 这些是具有两个以上声道或每个样本超过 16 位的 PCM 格式, (具有两个以上声道的音频也称为多声道音频) 。

这些格式通过使用 WAVEFORMATEX 结构的结构化扩展(称为 WAVEFORMATEXTENSIBLE)进行配置。 WAVEFORMATEXTENSIBLE 结构包含有关音频中包含的声道的信息。 使用高分辨率 PCM 音频时需要此结构,因为某些 Windows API 不接受包含高分辨率值的 WAVEFORMATEX 结构。

高分辨率 PCM 格式具有 22 字节的扩展数据,这些数据在 WAVEFORMATEX 结构的 cbSize 成员中指定。 高分辨率 Windows Media 音频格式不使用 WAVEFORMATEXTENSIBLE 结构,但将扩展数据追加到 WAVEFORMATEX 结构。

当应用程序在 Windows XP 或更高版本上运行时,Windows Media 音频编解码器仅支持解码为高分辨率 PCM 格式。 在早期版本的 Microsoft Windows 上,编解码器解码为每个样本最多 16 位和 2 个通道的格式。 此外,必须通过使用 IWMReaderAdvanced2::SetOutputSetting 方法将g_wszEnableDiscreteOutput输出设置设置为 TRUE 来指定希望编解码器解码为高清 PCM。 进行此调用后,读取器枚举的输出将包含高清格式。

多声道音频需要更多配置。 有关详细信息,请参阅 读取多声道音频

使用输入