Salut je suit le tuto SDL de loka sur ce même site j'en suis a la partie audio
http://loka.developpez.com/tutoriel/sdl/sons/
J'ajoute que je débute en C++ je n'ai pas encore les bons reflexe.
j'ai un problème avec la fonction Callback
Voici mes sources:
Sound.h :
Puis Sound.cpp
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 #ifndef SOUND_H #define SOUND_H #include <SDL/SDL.h> #include <SDL/SDL_audio.h> class Sound { public: Sound(); void audioCallback(void *udata, Uint8 *stream, int len); int audio_Init(void); private: SDL_AudioSpec audioSortie; }; #endif /* SOUND_H */
il y a un problème avec la fonction callback
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
26 #include "Sound.h" Sound::Sound() { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); } void Sound::audioCallback(void *udata, Uint8 *stream, int len){} int Sound::audio_Init(void) { // Définition des propriétés audio audioSortie.freq = 22050; audioSortie.format = AUDIO_S16; audioSortie.channels = 2; audioSortie.samples = 1024; audioSortie.callback = audioCallback; audioSortie.userdata = NULL; // Initialisation de la couche audio if (SDL_OpenAudio(&audioSortie, NULL) < 0) { fprintf(stderr, "Erreur d'ouverture audio: %s\n", SDL_GetError()); return (-1); } return 0; }
apparemment le compilateur ne s'attend pas a ce que je lui donne cette fonction mais j'ai pas trop compris car ce code est celui du tuto.Sound.cpp:14: error: argument of type ‘void (Sound::)(void*, Uint8*, int)’ does not match ‘void (*)(void*, Uint8*, int)’
Merci de votre aide.
Partager