C++ FMOD中的简单声音播放

C++ FMOD中的简单声音播放,c++,audio,fmod,C++,Audio,Fmod,我开始使用FMOD API,我在声音播放方面遇到了问题。我使用了这个网站上的教程:我唯一想到的就是声音破解 这是我在OpenGL init函数中使用的代码: 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,

我开始使用FMOD API,我在声音播放方面遇到了问题。我使用了这个网站上的教程:我唯一想到的就是声音破解

这是我在OpenGL init函数中使用的代码:

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

有人知道怎么回事吗?或者可能还有另一种方法。

首先确保检查所有函数的返回代码,确保它是FMOD\U OK

第二,您需要定期调用System::update,每帧更新一次,用于FMOD内部维护

关于你的问题,你在什么平台上?
爆裂通常意味着硬件无法跟上,要解决它,可以增加FMOD的缓冲量。这是通过System::setDSPBufferSize控制的,请尝试增加Numbuffer计数。您可以使用System::getDSPBufferSize确定当前值,也可以确保在System::init之前调用System::setDSPBufferSize以使新值生效。

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

与缓冲区连接的解决方案非常有用。谢谢。更新FMOD系统。这应该在应用程序中每“游戏”勾选一次或每帧调用一次。资料来源: