C 无法同时播放两种声音
有人能解释一下为什么我不能同时演奏两种声音吗 下面是代码的一部分:C 无法同时播放两种声音,c,fmod,C,Fmod,有人能解释一下为什么我不能同时演奏两种声音吗 下面是代码的一部分: #include <fmod.h> FMOD_SYSTEM *system; FMOD_SOUND *dooropen; FMOD_SOUND *keydoor; FMOD_SOUND *slap; FMOD_SOUND *bomb; FMOD_SOUND *scratch; FMOD_SOUND *secret; FMOD_SOUND *pickey; FMOD_SOUND *caisse; FMOD_RESU
#include <fmod.h>
FMOD_SYSTEM *system;
FMOD_SOUND *dooropen;
FMOD_SOUND *keydoor;
FMOD_SOUND *slap;
FMOD_SOUND *bomb;
FMOD_SOUND *scratch;
FMOD_SOUND *secret;
FMOD_SOUND *pickey;
FMOD_SOUND *caisse;
FMOD_RESULT resultat1;
FMOD_RESULT resultat2;
FMOD_RESULT resultat3;
FMOD_RESULT resultat4;
FMOD_RESULT resultat5;
FMOD_RESULT resultat6;
FMOD_RESULT resultat7;
FMOD_RESULT resultat8;
FMOD_System_Create(&system);
FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, NULL);
resultat1 = FMOD_System_CreateSound(system, "sound/door-open.mp3", FMOD_CREATESAMPLE, 0, &dooropen);
resultat2 = FMOD_System_CreateSound(system, "sound/key-door.wav", FMOD_CREATESAMPLE, 0, &keydoor);
resultat3 = FMOD_System_CreateSound(system, "sound/slap.wav", FMOD_CREATESAMPLE, 0, &slap);
resultat4 = FMOD_System_CreateSound(system, "sound/bomb.wav", FMOD_CREATESAMPLE, 0, &bomb);
resultat5 = FMOD_System_CreateSound(system, "sound/scratch.wav", FMOD_CREATESAMPLE, 0, &scratch);
resultat6 = FMOD_System_CreateSound(system, "sound/secret.wav", FMOD_CREATESAMPLE, 0, &secret);
resultat7 = FMOD_System_CreateSound(system, "sound/pickey.wav", FMOD_CREATESAMPLE, 0, &pickey);
resultat8 = FMOD_System_CreateSound(system, "sound/caisse.wav", FMOD_CREATESAMPLE, 0, &caisse);
我认为这是一个频道问题,因为当我播放“bomb”时,我可以听到它(这个声音大约3秒),但如果出现“刮擦”声音,“bomb”停止了…尝试创建新的系统,以满足您同时播放的声音量,或者您可以尝试使用FSOUND_play而不是FSOUND_Init
或者你也可以查看Hekkus音响系统。我已经在多个声音中使用了它,但它不支持mp3。FMOD\u System\u Init()中的第二个参数是maxchannels。只需将其设置为2或更高。在官方教程中,他们使用100。为一个声音创建一个频道,这样可以很好地工作,或者使用FMOD\u channel\u FREE如前所述,为系统创建更多频道
和
每次
FMOD\u系统播放声音后更新FMOD\u系统
插入
FMOD_System_Update(system);
然后就可以了。谢谢,我又创建了7个系统,效果很好,但我认为这不是最好的解决方案。。我不明白为什么我需要为每个声音创建一个系统!
FMOD_System_Update(system);