dr971
Messages postés27Date d'inscriptionmardi 6 mars 2007StatutMembreDernière intervention26 juillet 2007
-
10 mai 2007 à 20:40
waelmiladi
Messages postés2Date d'inscriptionvendredi 14 août 2009StatutMembreDernière intervention17 novembre 2009
-
12 oct. 2009 à 19:00
Bonjour,
je souhaite realiser un lecteur mp3 en c grace à la librairie fmod mais j'ai un probleme. En fait je souhaite qu'en appuyant sur la touche p de mon clavier, le morceau se mette en pause mais cela ne fonctionne pas. Mon code est le suivant :
int main(int argc, char *argv[])
{ SDL_Surface *ecran NULL, *pochette NULL;
SDL_Event event;
SDL_Rect position;
int continuer = 1;
FSOUND_STREAM *musique = NULL;
FSOUND_Init(44100, 32, 0);
musique = FSOUND_Stream_Open("essai.mp3", 0, 0, 0); /* On ouvre la musique */
if (musique == NULL) /* On vérifie si elle a bien été ouverte (IMPORTANT) */
{
fprintf(stderr, "Impossible de lire essai.mp3\n");
exit(EXIT_FAILURE);
}
FSOUND_Stream_SetLoopCount(musique, -1); /* On active la répétition de la musique à l'infini */
FSOUND_Stream_Play(FSOUND_FREE, musique); /* On joue la musique */
SDL_Init(SDL_INIT_VIDEO);
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du son avec FMOD", NULL);
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_p) //Si on appuie sur P
{
if (FSOUND_GetPaused(1)) // Si la chanson est en pause (sur le canal 1)
FSOUND_SetPaused(1,0); // On enlève la pause
else // Sinon, elle est en cours de lecture
FSOUND_SetPaused(1,1); // On active la pause
}
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_Flip(ecran);
}
FSOUND_Stream_Close(musique); /* On libère la mémoire */
FSOUND_Close();
SDL_FreeSurface(pochette);
SDL_Quit();
return EXIT_SUCCESS;
}