我正在尝试将.wav文件的数据部分读入缓冲区。我已经根据C++ Reading the Data part of a WAV file
阅读了标题部分因此,我的文件指针wavFile
现在指向数据部分的开头。然后我使用以下代码将音频数据读入缓冲区。
long bytes = wavHeader.bitsPerSample/8;
long buffsize= wavHeader.Subchunk2Size/bytes;
int16_T *audiobuf = new int16_T[buffsize];
fread(audiobuf,bytes,buffsize,wavFile);
// do some processing
delete audiobuf;
在我的测试音频文件中,bitsPerSample
为16,Subchunk2Size
为79844.因此,buffsize
为39922。
运行此代码后,我注意到只有audiobuf
的前256个位置被填充。但理论上应该有39922个音频数据条目。我该如何理清这个问题?