Sign in to follow this  
Tank202

XACT3 SoundBank initialisation problem

Recommended Posts

Tank202    184

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 biggrin.png

 

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();

 

 

Share this post


Link to post
Share on other sites
ankhd    2304

Hi. first try some debug flags

DWORD dwCreationFlags = 0;

 

if( bAuditionMode )

dwCreationFlags |= XACT_FLAG_API_AUDITION_MODE;

 

if( bDebugMode )

dwCreationFlags |= XACT_FLAG_API_DEBUG_MODE;

 

Pass this to XACT3CreateEngine.

 

cheack your return code here pXACT3Engine->Initialize(&XACT3Parameters);

Share this post


Link to post
Share on other sites
Tank202    184

Ok I've tried everything you suggested but nothing seems to help. However when I switch the creation flag to AUDITION_MODE it seems to initialise the SoundBank, but the program still won't play sounds using soundBank interface. Both of the cases the return value of  pXACT3Engine->Initialize(&XACT3Parameters); was S_OK. 

Maybe it is the library problem as pXACT3Engine->CreateSoundBank function is declared in xact3.lib and I dont have it in my directX SDK library folders. And also when installing my directX SDK at the end I get the error that says something like S 1024 or 1028 tongue.png

Edited by Tank202

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this