Bonjour, c'est encore moi, mon problème est que j'aimerai jouer une musique de fond sur un canal, et jouer des sons court sur un autre, pour pouvoir mettre en pause l'un ou l'autre.
Ce que je ne comprends pas dans l'utilisation de FMOD, c'est comment dire à un son d'être jouer sur "tel canal" vu que dans le prototype de playSound on ne demande pas un int mais un FMOD_CHANNELINDEX.
Je m'explique, voici le prototype de FMOD_System_GetChannel :
1 2 3 4 5
| FMOD_RESULT FMOD_System_GetChannel(
FMOD_SYSTEM * system,
int channelid,
FMOD_CHANNEL ** channel
); |
Je peux donc très bien écrire ceci :
FMOD_System_GetChannel(system, 1, &channel);
Tout comme je pourrai écrire ceci :
FMOD_System_GetChannel(system, FMOD_CHANNEL_FREE, &channel);
Mais lorsque je travail avec FMOD_System_PlaySound, voici son prototype :
FMOD_RESULT FMOD_System_PlaySound( FMOD_SYSTEM * system, FMOD_CHANNELINDEX channelid, FMOD_SOUND * sound, FMOD_BOOL paused, FMOD_CHANNEL ** channel );
Et donc ici si j'écrit ça :
FMOD_System_PlaySound(objetSystem, FMOD_CHANNEL_FREE, musiqueFond, 0, NULL);
Tout va bien, maintenant si j’écris ceci :
FMOD_System_PlaySound(objetSystem, 1, musiqueFond, 0, NULL);
Ça pause une erreur. (Le type int est incompatible avec le type FMOD_CHANNELINDEX)
Donc au final j'ai 2 questions
1. Comment peut on dire, toi, tu vas te jouer sur ce canal, toi sur celui-ci etc..
2. Comment fonctionne FMOD_CHANNEL_FREE?
Si j'ai bien compris il renvoie le premier canal libre? Oui ben c'est bien beau tout ça mais comment je fais pour le mettre en pause le canal qui m'a trouvé si je ne le connais pas?
Merci d'avance ! :/
Partager