在规范的WAV结构中,我没有看到这样的字段,但是可能会使用现有的字段吗?
我知道我们可以计算样本计算PCM (raw_sound_data_size / (bits_pers_sample / 8)),但是如何处理ADPCM?

发布于 2018-01-14 09:46:40
通常,Subchank2Size是以字节为单位的数据大小。以及bitsPerSample样本中有多少位。因此,样本的数量应该是:
samples = Subchank2Size / channels / ( bitsPerSample / 8 ).对于未压缩的数据是正确的。
ADPCM数据保存在“块”中。该块有三个部分,标题、数据和填充。这三个数字加在一起是字节。
报头
typedef struct adpcmblockheader_tag {
BYTE bPredictor[nChannels];
int iDelta[nChannels];
int iSamp1[nChannels];
int iSamp2[nChannels];
} ADPCMBLOCKHEADER;数据
数据是在组(wBitsPerSample * nChannels)中解析的位字符串。
填充
位填充用于将块舍入到一个确切的字节长度。
有关解码ADPCM格式的更多信息可以是在这里发现的。
不幸的是,如果不枚举所有块,就无法找到精确的样本计数。
https://stackoverflow.com/questions/48247996
复制相似问题