3

我开始使用 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);

有谁知道出了什么问题?或者也许有另一种方法。

4

2 回答 2

6

首先确保检查所有函数的返回码,确保它是 FMOD_OK。

其次,您需要定期调用 System::update,每帧一次以进行 FMOD 内务处理。

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

于 2012-01-24T23:51:55.917 回答
1

我不知道您是否正在调用 FMOD::System::Update() .. 您需要每帧至少调用一次

于 2014-02-02T15:18:56.297 回答