概述
Wave文件格式是用于存储数字音频数据的Windows本地文件格式。由于Windows的普及和为平台编写的大量程序,它已经成为PC上最广泛支持的数字音频文件格式之一。几乎每个可以打开和/或保存数字音频的现代程序都支持这种文件格式,这对软件开发人员来说是非常有用的和虚拟的要求。
数据格式
由于Wave文件格式是Windows原生的,因此Intel处理器,所有数据值都以Little-Endian (小端)顺序存储 。
Little-Endian :一般来说,x86 系列 CPU 都是 little-endian 的字节序,PowerPC 通常是 big-endian,网络字节顺序也是 big-endian还有的CPU 能通过跳线来设置 CPU 工作于 Little endian 还是 Big endian 模式。
波形文件可能包含用于指定提示点标签,注释等的文本字符串。字符串以格式存储,其中第一个字节指定字符串中以下ASCII文本字节的数量。以下字节当然是组成文本字符串的ASCII字符字节。Pascal程序员会注意到这是与Pascal字符串相同的格式。
文件结构
波形文件使用标准的 RIFF 结构,将文件内容(样本格式,数字音频样本等)分组为单独的块,每个包含自己的头和数据字节。块头指定块数据字节的类型和大小。该组织方法允许不使用或识别特定类型的块的程序轻松跳过它们,并继续处理已知的块。某些类型的块可能包含子块。例如,在下图中,您可以看到“fmt”和“data”块实际上是“RIFF”块的子块。
RIFF文件块的一个棘手之处在于它们必须是字对齐的。这意味着它们的总大小必须是2个字节的倍数(即2,4,6,8等等&