Platform SDK: DirectX

WAVEFORMATEX

WAVEFORMATEX 型は、ウェーブフォーム オーディオ データのフォーマットを定義する。

Type WAVEFORMATEX
    lAvgBytesPerSec As Long
    lExtra As Long
    lSamplesPerSec As Long
    nBitsPerSample As Integer
    nBlockAlign As Integer
    nChannels As Integer
    nFormatTag As Integer
    nSize As Integer
End Type

メンバ

lAvgBytesPerSec
フォーマット用に要求された平均データ転送速度。単位は 1 秒あたりのバイト数である。nFormatTag が WAVE_FORMAT_PCM の場合、nAvgBytesPerSeclSamplesPerSecnBlockAlign の積に等しくなる。
lExtra
不使用。0 に設定する。
lSamplesPerSec
各チャンネルの再生や録音におけるサンプリング レート。単位は 1 秒あたりのサンプリング回数 (ヘルツ)。nFormatTag が WAVE_FORMAT_PCM の場合、lSamplesPerSec の通常の値は 8.0 kHz、11.025 kHz、22.05 kHz、および 44.1 kHz である。
nBitsPerSample
サンプリングあたりのビット数。nFormatTag が WAVE_FORMAT_PCM の場合、nBitsPerSample は 8 か 16 でなければならない。
nBlockAlign
ブロック アライメント。単位はバイト。ブロック アライメントは、nFormatTag フォーマット タイプのデータの最小単位である。nFormatTag が WAVE_FORMAT_PCM の場合、nBlockAlign は 8 (バイトあたりのビット数) で割った nChannelsnBitsPerSample の積に等しくなる。

バッファに読み書きされるデータは、常にブロックの先頭で開始しなければならない。たとえば、PCM データの再生を、サンプルの中間、つまり非ブロック整列の境界から開始するのは間違いである。

nChannels
ウェーブフォーム オーディオ データのチャンネル数。モノラル データは 1 つのチャンネルを使い、ステレオ データは 2 つのチャンネルを使う。
nFormatTag
ウェーブフォーム オーディオ フォーマットのタイプ。DirectSound では、このメンバが常に WAVE_FORMAT_PCM でなければならない。
nSize
追加フォーマット情報のサイズ。単位はバイト。WAVE_FORMAT_PCM フォーマットでは、このメンバは無視される。