Bonjour à tous,
Je rencontre un petit soucis avec FMOD ou plutôt avec l'écriture requise en C pour faire fonctionner FMOD à travers une fonction.
Je tiens à préciser que FMOD est correctement installé et paramétré car je suis en mesure d'écouter n'importe quel son à condition qu'il ne soit pas en paramètre d'une fonction.
Pour simplifier votre analyse je ne vais écrire que les lignes intéressantes, à commencer par le header :
1 2
| header.h
void leson(FMOD_SOUND *caisse); |
La fonction "leson" servira à écouter le son "caisse"
Ensuite un extrait du programme en question
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#include <fmod.h>
FMOD_SYSTEM *system;
FMOD_SOUND *caisse;
FMOD_RESULT resultat8;
FMOD_System_Create(&system);
FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, NULL);
resultat8 = FMOD_System_CreateSound(system, "sound/caisse.wav", FMOD_CREATESAMPLE, 0, &caisse);
if (resultat8 != FMOD_OK)
{
fprintf(stderr, "error");
exit(EXIT_FAILURE);
} |
Jusqu'ici rien d'anormal, d'ailleurs si j'écris
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, caisse, 0, NULL);
J'entends bien le son.
Maintenant j'ai créé un switch pour l'exemple en demandant l'appel de la fonction leson() lorsque j'appuie sur la touche "v"
1 2 3 4 5 6 7 8 9 10 11
|
switch(event.type)
{
case SDL_KEYDOWN:
switch(event.key.keysym.sym)
{
case SDLK_v:
leson(&caisse);
break; |
Et enfin la fonction leson()
1 2 3 4 5 6 7
|
void leson(FMOD_SOUND *caisse)
{
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, caisse, 0, NULL);
fprintf(stderr, "test");
} |
Le fprintf me sert à vérifier que la fonction est correctement lancée et c'est bien le cas, sauf que je n'entends pas le son "caisse" lorsque je presse "v"..
Qu'est-ce que j'ai fait de mal ?
Partager