gpt4 book ai didi

c++ - FMOD内存泄漏

转载 作者:太空狗 更新时间:2023-10-29 23:17:05 26 4
gpt4 key购买 nike

我有很多短音频文件 (mp3) 我想用 C++ 中的 FMOD 播放。
在我的程序中有这样的东西:

FMOD::System *fmodSystem;
FMOD::Channel *channel;
FMOD::System_Create(&fmodSystem);

fmodSystem->init(100, FMOD_INIT_NORMAL, 0);

while(true)
{
FMOD::Sound *sound;
fmodSystem->createSound("random filename.mp3", FMOD_DEFAULT, FMOD_DEFAULT, &sound);
fmodSystem->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);
fmodSystem->update();
Sleep(100);
}

对于每个新声音,我都看到可用内存减少。这看起来很正常,因为我从未释放 FMOD:Sound 对象。我无法释放这些对象,因为 fmodSystem->playSound 方法是异步的。

那么我该如何解决这个内存问题呢?

最佳答案

我没有想出如何在播放完声音后释放声音,但我开始将所有声音缓存在 FMOD::Sound 数组中。

FMOD::Sound *sounds[84];

现在我的应用程序消耗了大约 100 MB 的 RAM,但没有增加。

关于c++ - FMOD内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com