次の方法で共有


リソース交換ファイル形式 (RIFF)

この概要では、.wav ファイルで使用されるリソース交換ファイル形式 (RIFF) について説明します。 RIFF は、XAudio2 のオーディオ データを読み込む一般的な形式です。

RIFF

RIFF ファイルは、チャンクと呼ばれるデータの複数の個別のセクションで構成 されます

FOURCC 識別子

チャンク内のデータの種類は、4 文字コード (FOURCC) 識別子によって示されます。 FOURCC は、RIFF ファイル内のチャンクの種類を識別するために使用される 4 つの ASCII 文字を連結して作成される 32 ビット符号なし整数です。 たとえば、FOURCC "abcd" は、0x64636261としてリトル エンディアン システムで表されます。 FOURCC にはスペース文字を含めることができるため、"abc" は有効な FOURCC です。 オーディオ ファイルでは、FOURCC コードを使用して、オーディオ形式のチャンク、オーディオ データ チャンク、およびオーディオ形式に固有のその他のチャンクを識別します。

次の表は、XAudio2 でサポートされているオーディオ形式で期待できる FOURCC 識別子を示しています。

フォーマット FOURCC 識別子 関連情報
PCM 0 "RIFF"、"fmt" 、"data"  
Adpcm "RIFF"、"fmt"、"data"、"smpl"、"wsmpl" ADPCM 固有の FOURCC 識別子の説明については、「ADPCM の概要」を参照してください。

 

FOURCC 識別子 "RIFF"、"fmt"、および "data" は、サポートされているすべての形式に共通です。 次の表では、サポートされているすべての形式の FOURCC 識別子について説明します。

FOURCC 識別子 説明
"RIFF" データ セクションの最初の 4 バイトに "WAVE" または "XWMA" の値を持つファイルの種類と、そのデータ セクションの残りの部分にあるファイル内の他のチャンクを含む Standard RIFF チャンク。
"fmt" オーディオ ファイルのフォーマット ヘッダーが含まれます。 このチャンク内のデータは、 WAVEFORMATEXWAVEFORMATEXTENSIBLE ADPCMWAVEFORMAT のいずれかの構造体に対応します。
"data" オーディオ ファイルのオーディオ データが含まれています。 XAudio2 では、データ チャンクの内容がバッファーに読み取られ、XAUDIO2_BUFFER構造体の pAudioData メンバーとしてソース音声に渡されます。

 

Chunks

RIFF ファイルは、0 個以上の他のチャンクを含む RIFF チャンクで構成されます。

  • RIFF チャンクの形式は次のとおりです。

    "RIFF"、fileSize、fileType、data

    "RIFF" はリテラル FOURCC コード "RIFF" で、 fileSize はファイル内のデータのサイズを指定する 4 バイト値で、 fileType は特定のファイルの種類を識別する FOURCC です。 fileSize の値には、fileType FOURCC のサイズと、それに続くデータのサイズが含まれますが、"RIFF" FOURCC のサイズや fileSize のサイズは含まれません。 データは、任意の順序でチャンクで構成されます。

  • その他のチャンクの形式は次のとおりです。

    chunkID, chunkSize, data
    

    chunkID はチャンクに含まれるデータを識別する FOURCC で、chunkSize はチャンクのデータ セクションのサイズを示す 4 バイトの値であり、データは 0 バイト以上のデータです。 データは常に最も近い WORD 境界に埋め込まれます。 chunkSize は、チャンク内の有効なデータのサイズを指定します。 埋め込み、 chunkID のサイズ、 chunkSize のサイズは含まれません。

はじめに

方法: XAudio2 でのサウンド再生

XAudio2 プログラミング リファレンス