次の方法で共有


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

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

リフ

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

FOURCC 識別子

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

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

形式 FOURCC 識別子 追加情報
PCM "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 メンバーとしてソースボイスに渡されます。

 

チャンク

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 プログラミング リファレンス