Skip to main content
xWMA は、Windows Media Audio (WMA) Professional 圧縮フォーマットのサブセットです。xWMA デコードは、ソフトウェアで XAudio2 によってサポートされています。xWMA は、軽量なラッパー内で WMA ビット ストリーム フォーマットを使用し、より高い圧縮を達成するコストとして CPU の小さな使用量を許容できるダイアログや音楽に有用です。品質設定により、ユーザーは圧縮されたサウンドのビット レートを変更できます。
xWMA と XMA2 は、どちらも Windows Media Audio (WMA) 用に開発されたコーデックに由来し、両方とも XBOX ゲーム向けに専用に開発されています。XMA2 で使用される利用可能なコーデックとパラメーターのサブセットは、xWMA で使用されるサブセットよりも小さいです。xWMA と XMA2 の両方が XBOX 用に開発されましたが、これらは相互に交換可能ではありません。各ファイル フォーマットのヘッダーは異なり、フォーマットは Windows の PC バージョンとは互換性がありません。XMA2 および xWMA で使用されるコーデックも若干異なるため、それぞれが使用される圧縮システムからの独自のアーティファクトを持ちます。
このトピックの内容:

xWMA エンコード

オーディオ データを xWMA にエンコードするには、xWMAEncode コマンド ライン ツール、または XWMAEncoder.lib に依存するカスタム ツールを使用します。

xWMAEncode

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

XWMAEncoder.lib

XWMAEncoder.lib は、xWMA コマンド ライン エンコーダーコマンド ライン ツールの代替として利用可能な静的リンク ライブラリです。カスタム ツールは、XWMAEncoder 関数を使用して xWMA エンコードを実行するためにこのライブラリに依存します。この関数の使用の詳細と例については、XBOX 360 のドキュメントを参照してください。

xWMA デコード

xWMA のソフトウェア デコードは、XAudio2 の Windows および XBOX One で、また xWMADecode API を通じてサポートされています。

xWMA ループ

xWMA は、xWMA ファイル内のループ領域や任意のパケットのループをサポートしません。xWMA ファイル全体のみをループできます。XAudio2 では、xWMA には、IXAudio2SourceVoice::SubmitSourceBuffer に渡される XAUDIO2_BUFFER の値に関するループに関連する制限があります。xWMA ファイルのすべてのオーディオ データが 1 つのバッファーとして送信され、ユーザーがそれをループしたい場合は、次の制限を満たす必要があります。
  1. XAUDIO2_BUFFER.LoopBegin は常にゼロである必要があります。
  2. XAUDIO2_BUFFER.LoopLength はゼロ、またはファイル全体の xWMA データのサンプル単位のサイズである必要があります。
  3. XAUDIO2_BUFFER.LoopCount は任意の値を取ることができます。
  4. XAUDIO2_BUFFER.Flags は XAUDIO2_END_OF_STREAM に設定する必要があります。
xWMA オーディオ データが複数のバッファーとして送信される場合、オーディオはバッファーの系列を再送信することによってのみ手動でループできます。 xWMA オーディオがループされている間に無音の期間が発生する可能性があるため、xWMA オーディオのループは一般に、スムーズなフェード インとフェード アウトを持つサウンドでのみ使用してください。例として、海の波の音や特定の種類の微妙な環境音などがあります。

xWMA ファイルの構造

xWMA ファイルは、次のタイプのチャンクを持つ標準的な RIFF ファイルです。 | チャンク FCC | 説明 | | --- | --- | --- | --- | | RIFF| 標準的な RIFF チャンクには次のものが含まれます。
1. データ セクションの最初の 4 バイトに、値 XWMA を持つファイル タイプが含まれます。
2. データ セクションの残りには、ファイル内の他のチャンクが含まれます。 | | fmt| このチャンクには、xWMA ファイルのフォーマット ヘッダーが含まれます。このチャンクのデータは、1 または 2 チャネルの xWMA データ用の WAVEFORMATEX 構造体、または 3 チャネル以上の xWMA データ用の WAVEFORMATEXTENSIBLE 構造体に対応します。 | | data| このチャンクには、エンコードされた xWMA オーディオ データが含まれます。xWMA が XAudio2 で使用される場合、data チャンクの内容はバッファーに読み込まれ、XAUDIO2_BUFFER 構造体の pAudioData メンバーとしてソース音声に渡されます。data チャンクの内容はバイト スワップする必要はありません。 | | dpds| このチャンクには、デコード済みパケット累積データ サイズ配列が含まれ、各要素は、対応する xWMA パケットが順にデコードされた後に累積されたバイト数です。このチャンクのサイズは UINT32 単位で測定され、そのデータ セクションの内容は XAudio2 で XAUDIO2_BUFFER_WMA 構造体を埋めるために使用されます。 |

関連項目

xWMA コマンド ライン エンコーダー
最終更新日 2026年8月24日