2

2つのサウンドを同時に再生できない理由を誰か説明してもらえますか?

ここにコードの一部:

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

そして、私は自分の音を次のように呼んでいます:

FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, scratch, 0, NULL);
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, bomb, 0, NULL);

「爆弾」を再生したときに聞こえるので(この音は3秒程度です)、チャンネルの問題があると思いますが、「スクラッチ」音が発生すると「爆弾」という音は止まります...

4

4 に答える 4

3

の 2 番目のパラメーターFMOD_System_Init()は maxchannels です。2以上に設定してください。公式のチュートリアルでは、100 を使用しています。

于 2012-11-30T01:45:21.060 に答える
1

同時に再生したいサウンドの量に合わせて新しいシステムを作成してみるか、FSOUND_Init の代わりに FSOUND_Play を使用してみてください。

または、Hekkus Sound System をチェックすることもできます。すでに複数のサウンドに使用して動作しましたが、mp3 はサポートしていません。

于 2012-05-22T21:33:33.143 に答える
0

1 つのサウンドごとに 1 つのチャネルを作成すると、正常に動作するか、FMOD_CHANNEL_FREE を使用できます

于 2013-08-09T20:20:50.893 に答える