FMOD - воспроизводить несколько звуков одновременно? - PullRequest
3 голосов
/ 22 ноября 2011

Я пытаюсь настроить Sound Manager (FMOD) для воспроизведения фоновой музыки и других звуков действий на разных каналах, так как я понимаю, что это единственный способ одновременного звучания с FMOD .... Моя настройканиже, если я позвоню playRepeat, а затем playOnce, первый трек остановится!

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);

}

... несмотря на то, что я использую два отдельных канала ... я что-то упустил?

1 Ответ

4 голосов
/ 22 ноября 2011

Проблема заключалась в том, что я инициализировал FMOD только с одним каналом

fmodsys->init(1,FMOD_INIT_NORMAL,0);

При изменении этого значения на более высокое значение настройки выше работали нормально!

...