> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# xWMA の概要

> XBOX ゲーム向けの xWMA オーディオ形式: 圧縮された会話や音楽ストリームのために XAudio2 がソフトウェアでデコードする WMA Professional のサブセットです。

xWMA は、Windows Media Audio (WMA) Professional 圧縮フォーマットのサブセットです。xWMA デコードは、ソフトウェアで [XAudio2](/build/console-features/audio/overviews/xaudio2-overview) によってサポートされています。xWMA は、軽量なラッパー内で WMA ビット ストリーム フォーマットを使用し、より高い圧縮を達成するコストとして CPU の小さな使用量を許容できるダイアログや音楽に有用です。品質設定により、ユーザーは圧縮されたサウンドのビット レートを変更できます。

<Note>xWMA と XMA2 は、どちらも Windows Media Audio (WMA) 用に開発されたコーデックに由来し、両方とも XBOX ゲーム向けに専用に開発されています。XMA2 で使用される利用可能なコーデックとパラメーターのサブセットは、xWMA で使用されるサブセットよりも小さいです。xWMA と XMA2 の両方が XBOX 用に開発されましたが、これらは相互に交換可能ではありません。各ファイル フォーマットのヘッダーは異なり、フォーマットは Windows の PC バージョンとは互換性がありません。XMA2 および xWMA で使用されるコーデックも若干異なるため、それぞれが使用される圧縮システムからの独自のアーティファクトを持ちます。</Note>

このトピックの内容:

* [xWMA エンコード](#ID4EW)
* [xWMA デコード](#ID4E6B)
* [xWMA ループ](#ID4ETD)
* [xWMA ファイルの構造](#ID4ESE)

<a id="ID4EW" />

## xWMA エンコード

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

### xWMAEncode

XAudio2 で使用するオーディオ ファイルを xWMA としてエンコードするには、[xWMA コマンド ライン エンコーダー](/build/console-features/audio/tools/xwmaencode-tools)を使用します。

### XWMAEncoder.lib

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

<a id="ID4E6B" />

## xWMA デコード

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

| テクノロジー     | 説明                                                                                                                                                                                                                                                                                                                                                                            |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| XACT       | XACT は XBOX One ではサポートされていません。                                                                                                                                                                                                                                                                                                                                                |
| XAudio2    | XAudio2 で xWMA エンコードされたデータを使用するには、(1) xWMA 固有の値で WAVEFORMATEXTENSIBLE 構造体を初期化し、(2) ソース音声を作成する際に [CreateSourceVoice](https://learn.microsoft.com/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2-createsourcevoice) に構造体を引数として渡します。XAudio2 でサウンドを読み込んで再生する例については、[XAudio2 でサウンドを再生する方法](https://msdn.microsoft.com/library/windows/desktop/ee415787\(v=vs.85\).aspx)を参照してください。 |
| XWMADecode | XWMADecode API を使用して、XAudio2 を使用せずに xWMA バッファーを PCM バッファーに直接デコードします。                                                                                                                                                                                                                                                                                                          |

<a id="ID4ETD" />

## xWMA ループ

xWMA は、xWMA ファイル内のループ領域や任意のパケットのループをサポートしません。xWMA ファイル全体のみをループできます。XAudio2 では、xWMA には、[IXAudio2SourceVoice::SubmitSourceBuffer](https://learn.microsoft.com/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2sourcevoice-submitsourcebuffer) に渡される [XAUDIO2\_BUFFER](https://learn.microsoft.com/windows/desktop/api/xaudio2/ns-xaudio2-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 オーディオのループは一般に、スムーズなフェード インとフェード アウトを持つサウンドでのみ使用してください。例として、海の波の音や特定の種類の微妙な環境音などがあります。

<a id="ID4ESE" />

## xWMA ファイルの構造

xWMA ファイルは、次のタイプのチャンクを持つ標準的な RIFF ファイルです。

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

<a id="ID4EPG" />

## 関連項目

[xWMA コマンド ライン エンコーダー](/build/console-features/audio/tools/xwmaencode-tools)


## Related topics

- [XBOX One のオーディオ アーキテクチャ](/ja-jp/build/console-features/audio/overviews/xbox-one-audio-architecture.md)
- [概要](/ja-jp/build/console-features/audio/overviews/index.md)
- [XMA2 の概要](/ja-jp/build/console-features/audio/overviews/xma2-overview.md)
- [SHAPE の概要](/ja-jp/build/console-features/audio/overviews/shape-overview.md)
- [ADPCM の概要](/ja-jp/build/console-features/audio/overviews/adpcm-overview.md)
