gpt4 book ai didi

c++ - 播放声音时 FMOD 泄漏

转载 作者:行者123 更新时间:2023-12-03 02:10:54 28 4
gpt4 key购买 nike

我正在做一个小游戏,添加声音会很好......

但是我泄露了很多,即使我试图删除所有内容并在互联网上查找信息......

这是我的代码:

#include "../../api/inc/fmod.hpp"
#include "../../api/inc/fmod_errors.h"
#include <iostream>
#include <string>

int main()
{
FMOD::System *system = NULL;
FMOD::System_Create(&system);
system->init(100, FMOD_INIT_NORMAL, 0);

FMOD::Channel *channel = NULL;
FMOD::Sound *sound = NULL;

while(true)
{
system->createSound("music.waw", FMOD_DEFAULT, FMOD_DEFAULT ,&sound);

FMOD_RESULT result = system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);

system->update();
}
system->release();
system = NULL;
delete (system);
delete (sound);
delete (channel);
return (0);
}

我很担心,因为如果我玩游戏的时间足够长,我会完全填满我的内存......
我该怎么办?
我究竟做错了什么?

最佳答案

您需要在播放完毕后释放声音:

system->createSound("music.waw", FMOD_DEFAULT, FMOD_DEFAULT ,&sound);
FMOD_RESULT result = system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);
system->update();
sound->release();

如果您打算大量重复使用声音,您可能会考虑只加载一次并保留它的内存。

关于c++ - 播放声音时 FMOD 泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24195008/

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