次の方法で共有


WAVEFORMATEX

WAVEFORMATEX 構造体は、ウェーブ フォーム オーディオ データのフォーマットを定義します。この構造体には、Wave フォーム オーディオ データ形式すべてに共通のフォーマット情報のみが含まれます。追加情報が必要なフォーマットの場合は、この構造体は追加情報と共に別の構造体の最初のメンバーとして格納されます。

この構造体は Platform SDK に含まれているもので、Dsound.h では宣言されていません。ここでは、参考として説明しています。

typedef struct WAVEFORMATEX {
    WORD wFormatTag;
    WORD nChannels;
    DWORD nSamplesPerSec;
    DWORD nAvgBytesPerSec;
    WORD nBlockAlign;
    WORD wBitsPerSample;
    WORD cbSize;
} WAVEFORMATEX;

メンバ

  • wFormatTag
    Wave フォーム オーディオ フォーマット タイプです。さまざまな圧縮アルゴリズムのフォーマット タグが、Microsoft Corporation で登録されています。フォーマット タグの詳細なリストは Mmreg.h ヘッダー ファイルで確認できます。1 つのチャネルまたは 2 つのチャネルの PCM データの場合、この値は WAVE_FORMAT_PCM にする必要があります。
  • nChannels
    Wave フォーム オーディオ データのチャンネル数です。モノラル データでは 1 つのチャンネル、ステレオ データでは 2 つのチャンネルが使用されます。
  • nSamplesPerSec
    サンプリング レートは 1 秒あたりのサンプル数 (Hz) で表します。wFormatTag が WAVE_FORMAT_PCM である場合、nSamplesPerSec の共通の値は 8.0 kHz、11.025 kHz、22.05 kHz、および 44.1 kHz です。PCM フォーマットでない場合は、フォーマット タグの製造元の仕様に従ってこのメンバーを計算する必要があります。
  • nAvgBytesPerSec
    フォーマット タグで必要な平均データ転送速度です。単位は 1 秒あたりのバイト数です。wFormatTag が WAVE_FORMAT_PCM である場合、nAvgBytesPerSec は nSamplesPerSec と nBlockAlign の積と等しくなる必要があります。PCM フォーマットでない場合は、フォーマット タグの製造元の仕様に従ってこのメンバーを計算する必要があります。
  • nBlockAlign
    ブロックのアライメントです (バイト単位)。ブロック アライメントは、wFormatTag フォーマット タイプのデータの最小単位です。wFormatTag が WAVE_FORMAT_PCM または WAVE_FORMAT_EXTENSIBLE である場合、nBlockAlign は、nChannels と wBitsPerSample の積を 8 で割った値 (バイトあたりのビット数) と等しくなる必要があります。PCM フォーマットでない場合は、フォーマット タグの製造元の仕様に従ってこのメンバーを計算する必要があります。 ソフトウェアは、データの nBlockAlign バイトの倍数を一度に処理する必要があります。デバイスに書き込むデータおよびデバイスから読み取るデータは、常に、ブロックの先頭から開始する必要があります。たとえば、サンプルの途中 (つまり、ブロックが調整されていない境界) で PCM データの再生を開始することは、無効です。
  • wBitsPerSample
    wFormatTag フォーマット タイプの、サンプリングあたりのビット数です。wFormatTag が WAVE_FORMAT_PCM である場合、wBitsPerSample は 8 または 16 と等しくなる必要があります。PCM フォーマットでない場合は、フォーマット タグの製造元の仕様に従ってこのメンバーを設定する必要があります。wFormatTag が WAVE_FORMAT_EXTENSIBLE である場合、この値は 8 の倍数になります。一部の圧縮方式では wBitsPerSample の値を定義できないため、このメンバーの値にはゼロを指定できます。
  • cbSize
    WAVEFORMATEX 構造体の後ろに追加されるフォーマット情報のサイズ (バイト単位) です。この情報は、PCM フォーマット以外でも wFormatTag の追加属性を格納するために使用できます。wFormatTag で追加情報が必要ない場合は、このメンバーをゼロに設定する必要があります。WAVE_FORMAT_PCM フォーマットの場合 (WAVE_FORMAT_PCM フォーマットの場合のみ)、このメンバーは無視されます。

要件

ヘッダー: Mmreg.h 宣言

関連項目

WAVEFORMATEXTENSIBLE