XAudio2 BasicSound サンプル
このサンプルは、XAudio2 API で、XAudio2 エンジンの初期化、マスター ボイスの作成、およびサンプル ファイルの再生を行う方法を示しています。
サンプルの場所
Windows: このサンプルの完全なソース コードは、次の場所にあります。
<Installed SDK Location>\Samples\C++\XAudio2\XAudio2BasicSound
Xbox 360: このサンプルの完全なソース コードは、次の場所にあります。
<Installed XDK Location>\Source\Samples\Audio\XAudio2BasicSound
サンプルの説明
サンプルによって実行される基本的な手順は、次のとおりです。
XAudio2Create メソッドを呼び出して、XAudio2 エンジンを初期化します。この時点で、一部の基本的なランタイム パラメーターと、通知コールバックを設定できます。
IXAudio2::CreateMasteringVoice メソッドを使用して、マスター ボイスを作成します。このメソッドは、アプリケーション内のすべてのオーディオ処理に使用される、最終ミックス フォーマットを制御します。
Windows の場合は、2 つの WAV ファイルを作成して再生します。
- ロードする WAV ファイルを探します。
- サンプル ヘルパー クラスを使用して、WAV ファイルとサンプル データを読み取ります。
- ロードされた WAV ファイルの形式に基づき、ソース ボイスを作成します。既定では、ソース ボイスは、最初に作成されたマスター ボイスにリンクされるので、ボイス送信リストは必要ありません。
- ソース ボイスにデータを送信するには、XAUDIO2_BUFFER 構造体を作成して、再生パラメーターをいくつか指定します。
- 関数 IXAudio2SourceVoice::SubmitSourceBuffer を使用して、ソース ボイスにデータを送信します。サンプル データは XAUdio2 によって複製されないため、再生中は、pAudioData バッファーが使用可能な状態のままになっている必要があります。
- ソース ボイスの再生を開始し、簡単なループを実行して、再生がいつ完了したのかを検出します。
- ソース ボイスと、関連するサンプル データをクリーンアップします。
Xbox 360 の場合は、2 つの XMA2 ファイルを作成して再生します。
このコードでは、上記の a ~ g で説明されている、WAV ファイル処理と同じロジックを使用します。これは、XMA2 が、標準的な WAVEFORMATEX ディスクリプターを使用しているためです。
注 XMA2 データのメモリーは、物理メモリーで 2K にアライメントされている必要があります。
XAudio2 エンジンを解放してクリーンアップします。