基本概念
WAV为微软公司开发的一种声音文件格式,它符合RIFF文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几。 通常使用三个参数来表示声音,量化位数,取样频率和采样点振幅。量化位数分为8位,16位,24位三种,声道有单声道和立体声之分,单声道振幅数据为n*1矩阵点,立体声为n*2矩阵点,取样频率一般有11025Hz(11kHz) ,22050Hz(22kHz)和44100Hz(44kHz) 三种,不过尽管音质出色,但在压缩后的文件体积过大。相对其他音频格式而言是一个缺点,其文件大小的计算方式为:WAV格式文件所占容量(B) = (取样频率 X量化位数X 声道) X 时间 / 8 (字节= 8bit) 每一分钟WAV格式的音频文件的大小为10MB,其大小不随音量大小及清晰度的变化而变化。WAV是最接近无损的音乐格式,所以文件大小相对也比较大。所有的WAV都有一个文件头,这个文件头音频流的编码参数。
RIFF的格式辨别码为WAVE。整个文件由2chunk组成:辨别码“fmt”(注意,最后一个是空白字符)和“data”。
在fmt的chunk下包含了一个PCMWAVEFORMAT数据结构,其定义如下:
typedef struct pcmwwaveformat-tag{
WAVEDOEMAT wf;
WORD wBitsPerSample;
}PCMWAVEFORMAT;
typedef struct waveformat-tag{
WORD wFoematTag;
WORD nChannels;
DWORD nSamplesPerSec;\DWORD nAvgBytesperSec ;
WROD nBlockAlign;
}WAVEFORMAT;
其意义分别为:
1、wFormatTag记录此声音的格式代号, 例如WAVE_FORMAT_PAM、WAVE_FORMAT_ADPCM等。 
2、nChannels:记录声音的频道数。
3、nSamplesPerSec:记录每秒取样数。
4、nAvgBytesPerSec:记录每秒的数据量。
5、nBlockAlign:记录区块的对齐单位。
6、wBitsPerSample:记录每个取样所需的位元数。
1、8比特和16比特样值得二进制编码表示一样吗?
不一样,8比特样值的数据格式是unsigned bytes,范围是0~255;16比特样值的数据格式是signed integers,范围是-32768~32767.