一般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/) –