簡介
typedef struct tWAVEFORMATEX
{
WORD wFormatTag; /* format type */
WORD nChannels; /* number of channels (i.e. mono, stereo...) */
DWORD nSamplesPerSec; /* sample rate */
DWORD nAvgBytesPerSec; /* for buffer estimation */
WORD nBlockAlign; /* block size of data */
WORD wBitsPerSample; /* number of bits per sample of mono data */
WORD cbSize; /* the count in bytes of the size of */
/* extra information (after cbSize) */
} WAVEFORMATEX, *PWAVEFORMATEX, NEAR *NPWAVEFORMATEX, FAR *LPWAVEFORMATEX;
名詞解釋
wFormatTag:設定波形聲音的格式,更多的信息請參考說明部分。
nChannels:設定音頻檔案的通道數量,對於單聲道的聲音,此此值為1。對於立體聲,此值為2.
nSamplesPerSec:設定每個聲道播放和記錄時的樣本頻率。如果wFormatTag= WAVE_FORMAT_PCM,那么nSamplesPerSec通常為8.0 kHz, 11.025 kHz, 22.05 kHz和44.1 kHz。例如對於採樣率為11.025 kHz的音頻,nSamplesPerSec將被設為11025。對於非PCM格式的,請根據廠商的設定計算。
nAvgBytesPerSec:設定請求的平均數據傳輸率,單位byte/s。這個值對於創建緩衝大小是很有用的。
nBlockAlign :以位元組為單位設定塊對齊。塊對齊是指最小數據的原子大小。如果 wFormatTag= WAVE_FORMAT_PCM,nBlockAlign為(nChannels*wBitsPerSample)/8。對於非PCM格式請根據廠商的說明計算。
wBitsPerSample:根據wFormatTag的類型設定每個樣本的位深(即每次採樣樣本的大小,以bit為單位)。如果wFormatTag= WAVE_FORMAT_PCM,此值應該設為8或16,對於非PCM格式,根據廠商的說明設定。一些壓縮的架構不能設定此值,此時wBitsPerSample應該為零。
cbSize:額外信息的大小,以位元組為單位,額外信息添加在WAVEFORMATEX結構的結尾。這個信息可以作為非PCM格式的wFormatTag額外屬性,如果wFormatTag不需要額外的信息,此值必需為0,對於PCM格式此值被忽略。