一般wav文件的subchunk1size是16。然而,我有有subchunk1size = 18。一些wav文件我有C++代码来读取具有subchunk1size = 16。现在我wav文件想要阅读有subchunk1size = 18的wav文件。任何帮助将不胜感激。C++读wav文件,subchunk1size = 18
typedef struct header_file
{
char chunk_id[4];
int chunk_size;
char format[4];
char subchunk1_id[4];
int subchunk1_size;
short int audio_format;
short int num_channels;
int sample_rate;
int byte_rate;
short int block_align;
short int bits_per_sample;
char subchunk2_id[4];
int subchunk2_size;
} header;
以上是我的代码读取与subchunk1size wav文件= 16
别忘了告诉我们你的代码。 –
这就是非PCM数据的“fmt”块,如μ律。不要仅仅假定该子块是第一块。基本参考[在这里](http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)。 –
如果您想要避免手动解析WAV文件的痛苦,并且还可以免费获得对其他许多音频格式的支持,则可以查看libsndfile;它允许你只是sf_open()几乎任何音频文件,并获得阅读音频样本的权利。 (http://www.mega-nerd.com/libsndfile/) –