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

时间:2016-07-29 20:22:45

标签: c++ events audio fmod

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

这是 soundengine.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();

soundengine.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();
}

然后我只需在 main.cpp 中调用 SoundEngine :: loadBank(); 它运行,但没有声音。我将 EnvironmentSound.bank 放在 main.cpp 的同一文件夹中,不确定"事件:/ StaticSounds / Engine" simple_event.cpp 的例子 谁能指出我犯的错误? 如果没有足够的信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

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

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