方法:XACT でのサウンドの再生
XACT でサウンドを再生するために必要となる最小限の手順を示します。
XACT でサウンドを再生するには
「方法:XACT の初期化」の詳細手順に従って XACT を初期化します。
関連する Wave バンク (.xwb) とサウンド バンク (.xsb) をバッファーにロードします。XACT GUI を使用した Wave バンクおよびサウンド バンクの作成については、「XACT ウェーブ バンクの構築」および「XACT サウンド バンクの構築」を参照してください)。
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;IXACT3SoundBank::GetCueIndex を使用して、再生するキューのインデックスを取得します。XACT GUI を使用したサウンド キューの作成については、「XACT サウンド バンクの構築」を参照してください
XACTINDEX dwSoundCueIndex = 0;dwSoundCueIndex = pSoundBank->GetCueIndex( "MusicMono" );
サウンド バンクで IXACT3SoundBank::Play を呼び出すことによってキューを再生します。
注意
IXACT3SoundBank::Play のパラメーターは、再生するキューのインデックス、およびメソッドによって設定されたキュー ポインターです。このキュー ポインターは、後でキューの状態の監視に使用されます。
IXACT3Cue* pCue;if( FAILED( hr = pSoundBank->Play( dwSoundCueIndex, 0, 0, &pCue ) ) ) return hr;
ゲーム ループで IXACT3Engine::DoWork を定期的に呼び出します。
注意
IXACT3Engine::DoWork を呼び出すことによって、XACT では内部タスクが繰り返し実行されます。
pXACT3Engine->DoWork();
Wave バンクおよびサウンド バンクが不要になった場合は、IXACT3WaveBank::Destroy および IXACT3SoundBank::Destroy を使用してこれらを破棄してください。
if (FAILED( hr = pSoundBank->Destroy() ) ) return hr;if (FAILED( hr = pWaveBank->Destroy() ) ) return hr;
関連トピック
- XACT の主要な概念
XACT の主要な概念の概要について説明します。 - XACT ファイルの種類
XACT GUI プロジェクトを使用して作成したファイルの概要を示します。