加载somesound.bank并用fmod播放c++

load somesound.bank and play, c++ with fmod

本文关键字:播放 c++ fmod 并用 somesound bank 加载      更新时间:2023-10-16

我正在尝试将fmod与c++项目一起使用,并创建了一个声音库。当我尝试加载它时,没有显示任何错误,但它不会播放任何声音。

这是声音引擎。h:

...
static FMOD_RESULT result;
static FMOD::Studio::System * fmodStudio;
static FMOD::Studio::Bank* masterBank;
static FMOD::Studio::EventDescription * eventDesc;
static FMOD::Studio::EventInstance * engine;
...
static void loadBank();

声音引擎.cpp

...
FMOD::Studio::System * SoundEngine::fmodStudio;
FMOD::Studio::Bank * SoundEngine::masterBank;
FMOD::Studio::EventDescription * SoundEngine::eventDesc;
FMOD::Studio::EventInstance * SoundEngine::engine;
...
void SoundEngine::initialise (void) 
{
result = FMOD::Studio::System::create(&fmodStudio);
if (result != FMOD_OK) possible = false; 
if (possible)result = fmodStudio->initialize(320, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, 0);
if (result != FMOD_OK) possible = false;
//sets initial sound volume (mute)
if (possible) channel->setVolume(0.0f);
fmodStudio->update();
}
void SoundEngine::loadBank()
{
//load master bank
if (possible)result = fmodStudio->loadBankFile("EnvironmentSound.bank", FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank);
if (result != FMOD_OK) possible = false;
result = fmodStudio->getEvent("event:/StaticSounds/Engine", &eventDesc);
result = eventDesc->createInstance(&engine);
engine->start();
fmodStudio->update();
}

然后我简单地调用SoundEngine::loadBank()main.cpp中它在运行,但没有任何声音。我将EnvironmentSound.bank放在main.cpp的同一文件夹中,但不确定"event:/StaticSounds/Engine"。正如我刚刚遵循fmodsimple_event.cpp

的示例一样有人能指出我犯的错误吗?如果没有足够的信息,请告诉我

我知道我回答这个问题迟到了,但至少对我来说,这里的问题是你没有加载银行字符串,所以你找不到字符串为"event:/StaticSounds/Engine"的事件。

if (possible)
    result = fmodStudio->loadBankFile("EnvironmentSound.strings.bank", FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank);