我开始使用FMOD API并且我在声音播放方面遇到了问题。我使用过这个网站的教程:http://glasnost.itcarlow.ie/~powerk/audio/AddFMODtoaproject.html并且只认为我的声音很破解。
这是我在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);
有谁知道出了什么问题?或者也许还有另一种方式。
答案 0 :(得分:6)
首先确保检查所有功能的返回代码,确保它是FMOD_OK。
其次,您需要定期调用System :: update,每帧一次调用FMOD内容。
关于你的问题,你在哪个平台? 噼啪声通常意味着硬件无法跟上,修复它可以增加FMOD的缓冲量。这是通过System :: setDSPBufferSize控制的,尝试增加numBuffers计数。您可以使用System :: getDSPBufferSize确定当前值,还要确保在System :: init之前调用System :: setDSPBufferSize以使新值生效。
答案 1 :(得分:1)
我不知道如果你正在调用FMOD :: System :: Update()..你需要每帧至少调用一次