次の方法で共有


方法:XACT でのサウンドの再生

XACT でサウンドを再生するために必要となる最小限の手順を示します。

XACT でサウンドを再生するには

  1. 方法:XACT の初期化」の詳細手順に従って XACT を初期化します。

  2. 関連する Wave バンク (.xwb) とサウンド バンク (.xsb) をバッファーにロードします。XACT GUI を使用した Wave バンクおよびサウンド バンクの作成については、「XACT ウェーブ バンクの構築」および「XACT サウンド バンクの構築」を参照してください)。

  3. IXACT3Engine::CreateInMemoryWaveBank および IXACT3Engine::CreateSoundBank を使用して Wave バンクとサウンド バンクを登録します。

    IXACT3WaveBank * pWaveBank;IXACT3SoundBank * pSoundBank;
    if ( FAILED( hr = pXACT3Engine->CreateInMemoryWaveBank( pvWaveBank, dwFileSize, 0, 0, &pWaveBank ) ) ) return hr;
    if ( FAILED( hr = pXACT3Engine->CreateSoundBank( pvSoundBank, dwFileSize, 0, 0, &pSoundBank ) ) ) return hr;
  4. IXACT3SoundBank::GetCueIndex を使用して、再生するキューのインデックスを取得します。XACT GUI を使用したサウンド キューの作成については、「XACT サウンド バンクの構築」を参照してください

    XACTINDEX dwSoundCueIndex = 0;dwSoundCueIndex = pSoundBank->GetCueIndex( "MusicMono" );
  5. サウンド バンクで IXACT3SoundBank::Play を呼び出すことによってキューを再生します。

    注意

    IXACT3SoundBank::Play のパラメーターは、再生するキューのインデックス、およびメソッドによって設定されたキュー ポインターです。このキュー ポインターは、後でキューの状態の監視に使用されます。

    IXACT3Cue* pCue;if( FAILED( hr = pSoundBank->Play( dwSoundCueIndex, 0, 0, &pCue ) ) ) return hr;
  6. ゲーム ループで IXACT3Engine::DoWork を定期的に呼び出します。

    注意

    IXACT3Engine::DoWork を呼び出すことによって、XACT では内部タスクが繰り返し実行されます。

    pXACT3Engine->DoWork();
  7. Wave バンクおよびサウンド バンクが不要になった場合は、IXACT3WaveBank::Destroy および IXACT3SoundBank::Destroy を使用してこれらを破棄してください。

    if (FAILED( hr = pSoundBank->Destroy() ) ) return hr;if (FAILED( hr = pWaveBank->Destroy() ) ) return hr;

関連トピック