音频WAV头
2023-05-16
57
0
文件头结构体定义:
#pragma pack(1)
struct wave_header {
char riff[4];
unsigned long fileLength;
char wavTag[4];
char fmt[4];
unsigned long size;
unsigned short formatTag;
unsigned short channel;
unsigned long sampleRate;
unsigned long bytePerSec;
unsigned short blockAlign;
unsigned short bitPerSample;
char data[4];
unsigned long dataSize;
};
#pragma pack()
数据初始化:
wave_header header;
memset(&header, 0, sizeof(header));
header.riff[0] = 'R';
header.riff[1] = 'I';
header.riff[2] = 'F';
header.riff[3] = 'F';
header.fileLength = (ULONG)PCMNum*1764 + (44 - 8);
header.wavTag[0] = 'W';
header.wavTag[1] = 'A';
header.wavTag[2] = 'V';
header.wavTag[3] = 'E';
header.fmt[0] = 'f';
header.fmt[1] = 'm';
header.fmt[2] = 't';
header.fmt[3] = ' ';
header.size = 16;
header.formatTag = 1;
header.channel = 2;
header.sampleRate = 44100;
header.bitPerSample = 16;
header.blockAlign = header.channel * header.bitPerSample / 8;
header.bytePerSec = header.blockAlign * header.sampleRate;
header.data[0] = 'd';
header.data[1] = 'a';
header.data[2] = 't';
header.data[3] = 'a';
header.dataSize = (ULONG)PCMNum * 1764;