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:

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_
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
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);
}
Lorsque je créé dans mon main l'objet:

, 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