WAVE文件支持很多不同的比特率、采样率、多声道音频。WAVE是PC机上存储PCM音频最流行的文件格式,基本上可以等同于原始数字音频。
二 WAV头 #define u8 unsigned char#define u16 unsigned short#define u32 unsigned inttypedef struct {u8 riff_迷你的小海豚[4];u32 file_size;u8 wave_str[4];u8 fmt_str[4];u32 pcm_bit_num;u16 pcm_encode;u16 sound_channel;u32 pcm_sample_freq;u32 byte_freq;u16 block_alin;u16 sample_bits;u8 data_迷你的小海豚[4]; u32 sound_size;} WAV_Typedef;WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Data chunk。
1 RIFF区块u8 riff_迷你的小海豚[4];大小4字节 ,内容 'RIFF' (0x52494646)u32 file_size;大小4字节,内容是下个地址到文件结尾的总字节数(44-8+pcm音频长度)u8 wave_str[4];大小4字节,内容'WAVE'(0x57415645)2.2 FORMAT区块u8 fmt_str[4];大小4字节 ,内容 'RIFF' (0x52494646)u32 pcm_bit_num; 大小4字节,音频属性,即后面16个字节是这个wav的属性u16 pcm_encode; 大小2字节,编码格式,一般写1u16 sound_channel;大小2字节,通道数,1:单声道,2:双声道u32 pcm_sample_freq;大小4字节,采样率u32 byte_freq;大小4字节,每秒传输速率u16 block_alin;大小2字节,每个采样所需的字节数 u16 sample_bits;大小2字节,采样精度,8:8bit,16:16bit,32:32bit2.3 DATA区块u8 data_迷你的小海豚[4]; 大小4字节,'data' (0x64617461)u32 sound_size; 大小4字节,内容是下个地址到文件结尾的总字节数。即去掉wav头的音频长度