标志符(RIFF)
数据大小
格式类型("WAVE")
"fmt"
Sizeof(PCMWAVEFORMAT)
PCMWAVEFORMAT
"data"
声音数据大小
声音数据
WAV为WAVEFORM(波形)的缩写。声音文件的结构如图1所示,"RIFF"的格式辨别码为"WAVE"。整个文件由两个chunk所组成:辨别码"fmt"(注意,最后一个是空白字符!)及"data"。
在"fmt"的chunk下包含了一个PCMWAVEFORMAT数据结构,其定义如下:
typedef struct pcmwaveformat - tag {
WAVEFORMAT wf ;
WORD wBitsPerSample;
} PCMWAVEFORMAT;
typedef struct waveformat - tag {
WORD wFormatTag ;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesperSec;
WORD nBlockAlign;
} WAVEFORMAT;
其意义分别为:
wFormatTag:记录着此声音的格式代号,例如WAVE_FORMAT_PCM,WAVE_F0RAM_ADPCM等等。
nChannels:记录声音的频道数。
nSamp1esPerSec:记录每秒取样数。
nAvgBytesPerSec:记录每秒的数据量。
nBlockA1ign:记录区块的对齐单位。
wBitsPerSample:记录每个取样所需的位元数。