所以即时通讯尝试读取wav文件的标题,出于某种原因,我只能阅读它的一部分。使用阅读波头C++
林这样的结构来存储数据:
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);
并在此之后仅块ID,CHUNKSIZE,格式和subChunkId具有值,其余的只是空。我究竟做错了什么?或者我只是碰巧有一个损坏的wav文件? (我可以在kmplayer中播放wav文件没有问题)
你做到以二进制方式打开文件,不是吗? – rodrigo