Hello,
I have this very strange problem with XACT3. I'm trying to play a sound using SoundBank interface, but it seems that SoundBank object pointer after initialisation is NULL. When I run the program, it would not respond.
PS. Using WaveBank interface, the program runs just fine.
Please help me with this issue. I would be glad as hell
Here is the code:
//XACT3 stuff
CoInitializeEx(NULL, COINITBASE_MULTITHREADED);
IXACT3Engine* pXACT3Engine;
XACT3CreateEngine(0, &pXACT3Engine);
XACT_RUNTIME_PARAMETERS XACT3Parameters = {0};
XACT3Parameters.lookAheadTime = XACT_ENGINE_LOOKAHEAD_DEFAULT;
pXACT3Engine->Initialize(&XACT3Parameters);
IXACT3SoundBank* pSoundBank;
HANDLE hMusicWaveBank = CreateFile("Music.xwb", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
HANDLE hMusicSoundBank = CreateFile("MusicList.xsb", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
pXACT3Engine->CreateInMemoryWaveBank(MapViewOfFile(CreateFileMapping(hMusicWaveBank, 0, PAGE_READONLY, NULL,
GetFileSize(hMusicWaveBank, NULL), 0), FILE_MAP_READ, 0, 0, 0), GetFileSize(hMusicWaveBank, NULL), 0, 0, &pWaveBank);
BYTE* pbMusicSoundBankBuffer = new BYTE[GetFileSize(hMusicSoundBank, NULL)];
pXACT3Engine->CreateSoundBank(pbMusicSoundBankBuffer, GetFileSize(hMusicSoundBank, NULL), 0, 0, &pSoundBank); //I've tried a lot of ways to get the first argument but nothing worked.
IXACT3Cue* pCue;
pSoundBank->Play(0, 0, 0, 0); //<- The point where the program stops responding
//Win32 message loop
while(GetMessage(&msg, hMainWindow, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
pXACT3Engine->DoWork();
//Sleep(10);
}
pXACT3Engine->ShutDown();