资源交换文件格式 (RIFF)
本概述介绍.wav文件中使用的资源交换文件格式(RIFF)。 RIFF 是从中加载 XAudio2 音频数据的典型格式。
RIFF
RIFF 文件由多个离散的数据部分组成,称为 区块。
FOURCC 标识符
区块中的数据类型由四个字符的代码(FOURCC)标识符指示。 FOURCC 是一个 32 位无符号整数,它通过连接四个 ASCII 字符来创建,用于标识 RIFF 文件中的区块类型。 例如,FOURCC“abcd”在小端系统上表示为0x64636261。 FOURC 可以包含空格字符,因此“abc”是有效的 FOURCC。 音频文件使用 FOURCC 代码标识音频格式区块、音频数据区块以及特定于音频格式的任何其他区块。
下表显示了 XAudio2 支持的音频格式可以预期的 FOURCC 标识符。
格式 | FOURCC 标识符 | 其他信息 |
---|---|---|
PCM | “RIFF”、“fmt”、“data” | |
ADPCM | “RIFF”、“fmt”、“data”、“smpl”、“wsmpl” | 有关特定于 ADPCM 的 FOURCC 标识符的说明,请参阅 ADPCM 概述。 |
FOURCC 标识符“RIFF”、“fmt”和“data”适用于所有受支持的格式。 下表描述了在所有受支持的格式中找到的 FOURCC 标识符。
FOURCC 标识符 | 描述 |
---|---|
“RIFF” | 标准 RIFF 区块,其中包含其数据节的前四个字节中值为“WAVE”或“XWMA”的文件类型,以及其数据节其余部分文件中的其他区块。 |
“fmt” | 包含音频文件的格式标头。 此区块中的数据对应于以下结构之一:WAVEATEX,WAVEATEXTENSIBLE ADPCMWAVEFORMAT。 |
“data” | 包含音频文件的音频数据。 在 XAudio2 中,数据区块的内容将读取到缓冲区中,并作为 XAUDIO2_BUFFER 结构的 pAudioData 成员传递给源语音。 |
块
RIFF 文件由包含零个或多个其他区块的 RIFF 区块组成。
RIFF 区块具有以下形式:
“RIFF”, fileSize, fileType, data
其中,“RIFF”是文本 FOURCC 代码“RIFF”,fileSize 是一个 4 字节值,它提供文件中数据的大小,fileType 是用于标识特定文件类型的 FOURCC。 fileSize 的值包括 fileType FOURCC 的大小以及以下数据的大小,但不包括“RIFF”FOURCC 的大小或 fileSize的大小。 数据包含任意顺序的区块。
其他区块采用以下形式:
chunkID, chunkSize, data
其中,chunkID 是一个用于标识区块中包含的数据的 FOURCC,chunkSize 是一个 4 字节值,它提供区块的数据部分的大小,并且数据是零个或更多字节的数据。 数据始终填充到最近的 WORD 边界。 区块大小 提供区块中有效数据的大小。 它不包括填充、chunkID的大小或 区块大小。
相关主题