Ich versuche, meinen Sound Manager (FMOD) so einzustellen, dass Hintergrundmusik und andere Action-Sounds auf verschiedenen Kanälen abgespielt werden, da ich verstehe, dass dies der einzige Weg ist, gleichzeitige Sounds mit FMOD zu haben. ... Mein Setup ist unten, wenn ich playRepeat
anrufe und dann playOnce
der erste Track stoppt!
void SoundMgr::addSound(char *path, string n){
Sound* s;
fmodsys->createSound(path, FMOD_SOFTWARE | FMOD_2D | FMOD_CREATESTREAM, 0, &s);
soundMap.insert(pair<string,Sound*>(n, s));
}
void SoundMgr::playOnce(string name){
fmodsys->playSound(FMOD_CHANNEL_FREE,
soundMap.find(name)->second, true, &fmodchn);
fmodchn->setPosition(0, FMOD_TIMEUNIT_PCM);
fmodchn->setPaused(false);
}
void SoundMgr::playRepeat(string name){
fmodsys->playSound(FMOD_CHANNEL_FREE,
soundMap.find(name)->second, true, &backChn);
backChn->setMode(FMOD_LOOP_NORMAL);
backChn->setPosition(0, FMOD_TIMEUNIT_PCM);
backChn->setPaused(false);
}
... trotz der Tatsache, dass ich zwei separate Kanäle verwende ... fehlt mir etwas?
Das Problem war, dass ich FMOD nur mit einem Kanal initialisierte.
fmodsys->init(1,FMOD_INIT_NORMAL,0);
Ändern in eine höhere Zahl hat dazu geführt, dass das obige Setup in Ordnung ist!