所以我试图读取 wav 文件的标题,由于某种原因,我只能读取其中的一部分。
我使用这种结构来存储数据:
struct WaveHeaderType
{
char chunkId[4];
unsigned long chunkSize;
char format[4];
char subChunkId[4];
unsigned long subChunkSize;
unsigned short audioFormat;
unsigned short numChannels;
unsigned long sampleRate;
unsigned long bytesPerSecond;
unsigned short blockAlign;
unsigned short bitsPerSample;
char dataChunkId[4];
unsigned long dataSize;
};
和这段代码来读取文件:
WaveHeaderType waveFileHeader;
fread(&waveFileHeader, sizeof(waveFileHeader), 1, filePtr);
在这之后只有 chunkId、chunkSize、format 和 subChunkId 有值,其余的只是 null。我究竟做错了什么?或者我只是碰巧有一个损坏的 wav 文件?(我可以毫无问题地在 kmplayer 中播放 wav 文件)