之前简单的以为 format数据块里面的AudioFormat 的值=1 表示PCM
但是没有展开说明,今天展开表述一下
首先
复杂程度,远远超过想象。
**********************
wFormatTag = WAVE _ format _ pcm
wFormatTag = WAVE _ format _ ieee _ float
WAVE_FORMAT_ALAW
WAVE_FORMAT_MULAW
WAVE_FORMAT_EXTENSIBLE
**********************
(微软的解释:
WAVEFORMATEX (mmreg.h) - Win32 apps | Microsoft Docs)
********
如果 wFormatTag = WAVE _ format _ extensible,将 cbSize 设置为 sizeof (WAVEFORMATEXTENSIBLE)-sizeof (WAVEFORMATEX)加上任何附加到 WAVEFORMATEXTENSIBLE 结构的特定格式数据的大小。
**
wFormatTag 是格式标签,几乎都是已定义好的一些常数
如:
pcm格式是0;
Adpcm是1;
杜比Ac2 是30;
等等... ...;
其中最常用的就是PCM 和ADPCM;
********
**
当FormatTag为WAVE_FORMAT_EXTENSIBLE(0xFFFE)时,表示format chunk有扩展字段,其中包括有效量化位数(wValidBitsPerSample)、声道位置掩码、以及额外的GUID(SubFormat)。
***
**