私は何か間違っていると思います。私はSoundManagerクラスを5つの異なるチャンネルを持つように設定しました。私のゲームでは、銃が発射され、敵が "傷つく"ようなサウンドが同時に演奏されるかもしれません...これはFMODと機能私は、彼らが常に先頭に巻き戻されていることを方法でサウンドを再生するために呼び出す:FMOD - 同時音を再生することができません
void SoundMgr::init(){
System_Create(&fmodsys);
fmodsys->init(5, FMOD_INIT_NORMAL, 0)
}
void SoundMgr::play(string name, int chan){
if(chan == 1){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn1);
chn1->setMode(FMOD_LOOP_OFF);
chn1->setPosition(0, FMOD_TIMEUNIT_PCM);
chn1->setPaused(false);
} else if(chan == 2){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn2);
chn2->setMode(FMOD_LOOP_OFF);
chn2->setPosition(0, FMOD_TIMEUNIT_PCM);
chn2->setPaused(false);
} else if(chan == 3){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn3);
chn3->setMode(FMOD_LOOP_OFF);
chn3->setPosition(0, FMOD_TIMEUNIT_PCM);
chn3->setPaused(false);
} else if(chan == 4){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn4);
chn4->setMode(FMOD_LOOP_OFF);
chn4->setPosition(0, FMOD_TIMEUNIT_PCM);
chn4->setPaused(false);
} else if(chan == 5){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn5);
chn5->setMode(FMOD_LOOP_OFF);
chn5->setPosition(0, FMOD_TIMEUNIT_PCM);
chn5->setPaused(false);
}
}
そして、私が持っているゲームで(これは単なる例であるが、それはほとんどの音で発生):
....
sMgr->play("gunshot", 1);
....
sMgr->play("rat_hurt", 3);
...
その結果、2つの音がほとんどの時間に対し、同時にめったに演奏しないと、非常にランダムであるしかし
2つの演劇の一つだけ...
また、私はループモードがあります:
void SoundMgr::playRepeat(string name, int chan){
if(chan == 1){
fmodsys->playSound(FMOD_CHANNEL_FREE, soundMap.find(name)->second, true, &chn1);
chn1->setMode(FMOD_LOOP_NORMAL);
chn1->setPosition(0, FMOD_TIMEUNIT_PCM);
chn1->setPaused(false);
} else if(chan == 2)
....
をしかし、それはあまりにもランダムに異なるチャンネルで再生しても、他の非ループ音によって中断されましたか?
は、私は本当にあなたが
は、あなたが提供することができるかもしれない任意の助けを事前にありがとうござい提供することができるかもしれない任意の助けをいただければと思います。
は、チャネルがしかし正常に動作していない理由を私は把握たら、それは私が喜んで検討したいソリューションです、ありがとう.. – Alex