xWMA の概要

xWMA は Windows Media Audio (WMA) Professional 圧縮フォーマットのサブセットです。XAudio2 と XACT3 の両方において、ソフトウェアで xWMA をデコードできるようになりました。xWMA では、軽量ラッパーに WMA ビットストリーム フォーマットを使用しており、XMA より圧縮率が向上しました。xWMA は、少ない CPU ヒット率でより大きい圧縮率を実現できるので、ダイアログや音楽などに有用です。品質設定により、圧縮されたサウンドのビットレートを変更できます。

XMA エンコーディング

オーディオ データは、XACT または xWMAEncode コマンドライン ツールを使用して、xWMA にエンコードされます。

  • XACT

    XACT GUI で Wave バンクを作成するときにオーディオ ファイルを xWMA として自動的にエンコードすることができます。圧縮プリセットを使用して、xWMA 圧縮を Wave または Wave バンクに適用します。オーディオ データを XACT 用の xWMA としてエンコードする方法については、「圧縮の事前設定」を参照してください。

  • xWMAEncode

    オーディオ ファイルを XAudio2 用 xWMA としてエンコードするには、xWMA コマンド ライン エンコーダー を使用します。

xWMA デコード

Windows と Xbox 360 の両方で、XACT および XAudio2 での xWMA のソフトウェア デコードがサポートされます。

  • XACT

    XACT でサポートされるすべてのエンコーディング フォーマットは、同じ方法でロードおよび再生されます。xWMA でエンコードされている Wave または Wave バンクを処理する際に、標準の Wave の再生で追加の手順は必要になりません。XACT でのサウンドのロードおよび再生の例については、「方法 : XACT でのサウンドの再生」を参照してください。

  • XAudio2

    XAudio2 で xWMA エンコードされたデータを使用するには、ソース ボイスの作成時に、xWMA 固有の値で WAVEFORMATEXTENSIBLE 構造体を初期化し、それを引数として IXAudio2::CreateSourceVoice に渡す必要があります。XAudio2 でのサウンドのロードおよび再生の例については、「方法 : XAudio2 によるサウンドの再生」を参照してください。

xWMA ファイル構造

xWMA ファイルは、次のチャンク タイプを含む標準の RIFF ファイルです。

チャンク FCC 説明
RIFF データ セクションの最初の 4 バイトに値 XWMA のファイル タイプを含む標準の RIFF チャンク、およびデータ セクションの残りのファイルの他のチャンクです。
fmt xWMA ファイルのフォーマット ヘッダーを格納します。このチャンクのデータは、1 つまたは 2 つのチャンネルを持つ xWMA データの場合 WAVEFORMATEX 構造体に対応し、3 つ以上のチャンネルを持つ xWMA データの場合 WAVEFORMATEXTENSIBLE 構造体に対応します。Xbox 360 上では、fmt チャンクからロードされたデータは、バイト スワップして Windows と Xbox 360 間のエンディアンの差異を相殺する必要があります。
data エンコード済みの xWMA オーディオ データを格納します。XAudio2 で xWMA を使用する場合、データ チャンクの内容がバッファーに読み込まれ、XAUDIO2_BUFFER 構造体の pAudioData メンバーとしてソース ボイスに渡されます。データ チャンクの内容は、バイト スワップする必要はありません。
dpds デコードされたパケットの累積データ サイズ配列を格納します。各要素は、対応する xWMA パケットが順番にデコードされた後に蓄積されたバイト数です。この UINT32 値のチャンクのサイズとそのデータ セクションの内容は、XAudio2 で XAUDIO2_BUFFER_WMA 構造体に入力するために使用されます。Xbox 360 上では、dpds チャンクからロードされたデータは、バイト スワップして Windows と Xbox 360 間のエンディアンの差異を相殺する必要があります。

XAudio2 で RIFF ファイルからのデータを解析およびロードする例については、「XAudio2 BasicSound サンプル」を参照してください。XACT で xWMA ファイルをロードする場合、ファイルのロードおよび解析の詳細は、XACT エンジンで処理されます。詳細は、「方法 : XACT でのサウンドの再生」を参照してください。

関連トピック