2012-01-24 61 views
2

我开始使用FMOD API,并遇到播放声音的问题。我使用过这个网站的教程:http://glasnost.itcarlow.ie/~powerk/audio/AddFMODtoaproject.html,只是觉得我得到的是完美的破解。FMOD中的简单声音播放

这是我用我的OpenGL初始化函数代码:

FMOD::System_Create(&system);// create an instance of the game engine 
system->init(32, FMOD_INIT_NORMAL, 0); 

system->createSound("sound.wav", FMOD_HARDWARE, 0, &sound1); 
sound1->setMode(FMOD_LOOP_OFF); 

system->playSound(FMOD_CHANNEL_FREE, sound1, false, 0); 

没有人有任何的想法有什么不好?或者,mayby还有另一种方式。

回答

5

首先确保您检查所有函数的返回码,确保它是FMOD_OK。其次,您需要定期致电System :: update,每帧一次用于FMOD内务。

关于你的问题,你在哪个平台上? 破解通常意味着硬件无法跟上,修复它可以增加FMOD的缓冲量。这通过System :: setDSPBufferSize控制,尝试增加numBuffers计数。您可以使用System :: getDSPBufferSize确定当前值,并确保在System :: init之前调用System :: setDSPBufferSize以使新值生效。

+0

与缓冲器连接的解决方案是真正的帮助至少一次调用它。谢谢。 – sebap123

1

我不知道如果要调用FMOD ::系统::更新()..你需要每帧

+0

更新FMOD系统。这应该在每个“游戏”打勾时调用一次,或者在应用程序中每帧调用一次。 来源:http://www.fmod.org/docs/content/generated/FMOD_System_Update.html – PALEN