Salut,
Je débute avec la librairie audio FMOD. Je bloque actuellement sur la création d'une interface audio, qui me permettra seulement de jouer un son à partir d'un bouton enclencher par un clique (Ce bouton est créer dans une interface extérieure à l'aide de Qt).
Voici mon fichier .h qui contient mon interface audio:
Et voici les méthodes implémentées de l'interface audio:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #ifndef _SOUND_H_ #define _SOUND_H_ #include <fmod.h> #include "fmod.hpp" #include "fmod_errors.h" class sound_mgr { public: sound_mgr(); ~sound_mgr(); void sound_mgr::playsound(); void sound_mgr::loadsample(const char *soundpath); private: FMOD_SYSTEM *sys; FMOD_SOUND *soundA; FMOD_CHANNEL *channel; FMOD_RESULT result; }; #endif //_SOUND_H_
Lorsque je créé dans mon main l'objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include "gosound.h" #include "sound.h" void sound_mgr::playsound() { FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, soundA, 0, &channel); } void sound_mgr::loadsample(const char *soundpath) { FMOD_System_CreateSound(sys, soundpath, FMOD_CREATESAMPLE, 0, &soundA); } sound_mgr::sound_mgr() { FMOD_System_Create(&sys); FMOD_System_Init(sys, 16, FMOD_INIT_NORMAL, NULL); loadsample("A.wav"); } sound_mgr::~sound_mgr() { FMOD_System_Close(sys); FMOD_System_Release(sys); }
, le système et la librairie sont initialisés, ensuite je charge mes fichiers sonores. Sauf que dans une interface extérieure (GUI avec Qt), lorsque je déclenche le signal avec mon bouton pour faire un appel à la fonction "FMOD_System_PlaySound", c'est le crash direct du programme sans aucun moyen de vérifier la valeur de retour dans un FMOD_RESULT. Je pense que j'écrit dans un pointeur ou je ne devrais pas, si quelqu'un pouvait m'éclaircir et débloquer cette situation. Merci à ceux qui savent
Code : Sélectionner tout - Visualiser dans une fenêtre à part sound = new sound_mgr;
![]()
Partager