gpt4 book ai didi

c++ - FMOD - 同时播放多个声音?

转载 作者:太空狗 更新时间:2023-10-29 21:06:07 31 4
gpt4 key购买 nike

我正在尝试设置我的声音管理器 (FMOD) 以在不同的 channel 上播放背景音乐和其他 Action 声音,据我所知,这是使用 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);

}

...尽管我使用的是两个独立的 channel ...我是否遗漏了什么?

最佳答案

问题是我只用一个 channel 初始化 FMOD

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

将其更改为更高的数字使上面的设置工作正常!

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

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