XAudio2 BasicSound サンプル

このサンプルは、XAudio2 API で、XAudio2 エンジンの初期化、マスター ボイスの作成、およびサンプル ファイルの再生を行う方法を示しています。

サンプルの場所

Windows:   このサンプルの完全なソース コードは、次の場所にあります。

<Installed SDK Location>\Samples\C++\XAudio2\XAudio2BasicSound

Xbox 360:   このサンプルの完全なソース コードは、次の場所にあります。

<Installed XDK Location>\Source\Samples\Audio\XAudio2BasicSound

サンプルの説明

サンプルによって実行される基本的な手順は、次のとおりです。

  1. XAudio2Create メソッドを呼び出して、XAudio2 エンジンを初期化します。この時点で、一部の基本的なランタイム パラメーターと、通知コールバックを設定できます。

  2. IXAudio2::CreateMasteringVoice メソッドを使用して、マスター ボイスを作成します。このメソッドは、アプリケーション内のすべてのオーディオ処理に使用される、最終ミックス フォーマットを制御します。

  3. Windows の場合は、2 つの WAV ファイルを作成して再生します。

    1. ロードする WAV ファイルを探します。
    2. サンプル ヘルパー クラスを使用して、WAV ファイルとサンプル データを読み取ります。
    3. ロードされた WAV ファイルの形式に基づき、ソース ボイスを作成します。既定では、ソース ボイスは、最初に作成されたマスター ボイスにリンクされるので、ボイス送信リストは必要ありません。
    4. ソース ボイスにデータを送信するには、XAUDIO2_BUFFER 構造体を作成して、再生パラメーターをいくつか指定します。
    5. 関数 IXAudio2SourceVoice::SubmitSourceBuffer を使用して、ソース ボイスにデータを送信します。サンプル データは XAUdio2 によって複製されないため、再生中は、pAudioData バッファーが使用可能な状態のままになっている必要があります。
    6. ソース ボイスの再生を開始し、簡単なループを実行して、再生がいつ完了したのかを検出します。
    7. ソース ボイスと、関連するサンプル データをクリーンアップします。

    Xbox 360 の場合は、2 つの XMA2 ファイルを作成して再生します。

    このコードでは、上記の a ~ g で説明されている、WAV ファイル処理と同じロジックを使用します。これは、XMA2 が、標準的な WAVEFORMATEX ディスクリプターを使用しているためです。

         XMA2 データのメモリーは、物理メモリーで 2K にアライメントされている必要があります。

  4. XAudio2 エンジンを解放してクリーンアップします。