2012-05-22 1 views
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 초와 같습니다). 그러나 "흠집"소리가 나는 경우 "폭탄"소리가 멈추고 있습니다 ...

답변

1

으로 전에 말했듯이 그들은 한 사운드 당 하나 개의 채널을 만들기 (100)

1

동시에 연주하려는 소리의 양에 대해 새로운 시스템을 만들거나 FSOUND_Init 대신 FSOUND_Play를 사용해 볼 수 있습니다.

또는 Hekkus 사운드 시스템을 체크 아웃 할 수도 있습니다. 이미 여러 사운드에 사용하여 작동했지만 MP3를 지원하지 않습니다.

+0

감사합니다. 시스템을 7 개 더 만들었고 정상적으로 작동하지만 그게 최상의 솔루션이라고 생각하지 않습니다. 각 사운드에 대해 시스템을 만드는 데 필요한 이유를 이해하지 못합니다! –

3

FMOD_System_Init()의 두 번째 매개 변수는 maxchannels입니다. 2 이상으로 설정하십시오. 공식 튜토리얼에서는 FMOD_CHANNEL_FREE이

0

를 사용하고 그것을 잘 작동합니다 사용하거나 초기화 이상의 채널

업데이 트를 가진 시스템 FMOD_SYSTEM 후 각 FMOD_System_PlaySound.

그냥
FMOD_System_Update(system); 

는 그 다음 괜찮을 것 삽입합니다.