> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ADPCM 概述

> XAudio2 如何使用 ADPCM 有损音频压缩（支持可配置的采样块大小）实现 XBOX 游戏音频，以及如何编码 ADPCM 内容。

自适应差分脉冲编码调制 (Adaptive Differential Pulse Code Modulation, ADPCM) 是一种有损压缩格式，这意味着在压缩过程中会有部分数据被改变并丢失。ADPCM 可以实现最高 4:1 的压缩比。

`XAudio2` 对 ADPCM 的实现提供了额外的功能，可用于指定压缩样本块的大小。音频设计师可以借助 ADPCM 选择一种在体积、质量以及分辨率（用于放置循环点）之间取得合理平衡的设置。

由于 `XAudio2` 实现的 ADPCM 支持可配置的样本块大小，`XAudio2` 的 ADPCM 与以往的 ADPCM 格式（如 IMA ADPCM 和 Microsoft ADPCM）并不兼容。`XAudio2` 要求 ADPCM 内容必须使用其专用的 ADPCM 命令行编码器工具生成。反过来，若要解码以 `XAudio2` ADPCM 格式编码的内容，也需要外部音频制作或渲染引擎显式提供支持。

<a id="ID4EY" />

## ADPCM 编码

使用 [ADPCM 命令行编码器](/build/console-features/audio/tools/adpcmencoder-tools) 工具将音频数据编码为 ADPCM。

<a id="ID4EDB" />

## ADPCM 播放

在 XBOX One 上使用 `XAudio2` 播放 ADPCM 音频。为此，首先使用 ADPCM 相关的值初始化一个 [WAVEFORMATEX](https://learn.microsoft.com/windows/desktop/api/mmreg/ns-mmreg-waveformatex) 结构，然后在创建源语音时将该结构作为参数传给 [IXAudio2::CreateSourceVoice](https://learn.microsoft.com/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2-createsourcevoice)。有关在 `XAudio2` 中加载和播放声音的示例，请参见 [如何：使用 XAudio2 播放声音](https://msdn.microsoft.com/library/windows/desktop/ee415787\(v=vs.85\).aspx)。

## 另请参阅

[XAudio2 概述](/build/console-features/audio/overviews/xaudio2-overview)
[使用 XAudio2 播放声音](/build/console-features/audio/overviews/xaudio2-play-sound)
[ADPCM 命令行编码器](/build/console-features/audio/tools/adpcmencoder-tools)


## Related topics

- [ADPCM 命令行编码器](/zh-CN/build/console-features/audio/tools/adpcmencoder-tools.md)
- [概述](/zh-CN/build/console-features/audio/overviews/index.md)
- [使用 XAudio2 播放声音](/zh-CN/build/console-features/audio/overviews/xaudio2-play-sound.md)
- [XBOX One 中的音频架构](/zh-CN/build/console-features/audio/overviews/xbox-one-audio-architecture.md)
- [Playtest 概述](/zh-CN/publishing/game-publishing/concepts/playtest.md)
