用C ++读取wav文件的subchunk2数据

时间:2014-09-07 07:50:39

标签: c++ audio wav

我正在尝试将.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个音频数据条目。我该如何理清这个问题?

0 个答案:

没有答案