Fmodex- pause langage C

Fermé
airun - 23 nov. 2010 à 11:22
Bonjour,





bonjour à tous, j'ai un petit problème avec fmodex. j'arrive a lire du mp3 mais je n'arrive pas le mettre en pause:

mon
FMOD_System_GetMasterChannelGroup(system, &canal)

fonctionne bien
mais ça plante a ce niveau la :
FMOD_ChannelGroup_GetPaused(canal, &etat)


donc forcement il ne peut pas mettre la chanson en pause.
et a ce moment la j'ai une belle petite fenêtre call stack avec un"Program received signal SIGSEGV, Segmentation fault."

mon fichier.cpp:
char titre [50]="sons/Jenny from the block ( with Jadakiss ).mp3";
FMOD_SYSTEM *system=NULL;
chargerSon(titre,system);
            while (continuer)
            {
                event.type=0;//initialisation
                SDL_PollEvent(&event);

                switch(event.type)
                {
                    case SDL_QUIT:
                        continuer = 0;
                        numFight=nbFight;
                        numRound=nbRound;

                    case SDL_KEYDOWN:
                        switch(event.key.keysym.sym)
                        {
                            case SDLK_KP4://pause du jeu
                            //pause de la musique
                            FMOD_CHANNELGROUP *canal;
                            FMOD_BOOL etat;

                            if(FMOD_System_GetMasterChannelGroup(system, &canal)){
                                fprintf(stderr, "system bien recuperer");
                            }else{
                                fprintf(stderr, "impossible de lier le system a un canal= %s\n", SDL_GetError());
                            }

                            if(FMOD_ChannelGroup_GetPaused(canal, &etat)){
                                fprintf(stderr, "recuperation de letat de la chanson reussi : %d",etat);

                            }else
                            {
                                fprintf(stderr, "impossible de lire letat de la chanson= ");
                            }
                            if (etat) // Si la chanson est en pause
                                FMOD_ChannelGroup_SetPaused(canal, 0); // On enlève la pause
                            else // Sinon, elle est en cours de lecture
                                FMOD_ChannelGroup_SetPaused(canal, 1); // On active la pause


mon fichier chargerSon.cpp:
void chargerSon(char titre[],FMOD_SYSTEM *system)
{
    /** gestion du son **/

    FMOD_SOUND *pSon;

        FMOD_RESULT resultat;//pr récupérer le resultat du chargement du son


        FMOD_System_Create(&system);//allocation en memoire de l'objet system
        FMOD_System_Init(*&system, 1, FMOD_INIT_NORMAL, NULL);//initialisation(objet system,nbSon, flag, extradriverdata)

        resultat = FMOD_System_CreateSound(*&system, titre, FMOD_SOFTWARE | FMOD_2D | FMOD_CREATESTREAM, 0, &pSon);//(objet system, mon son,type de son(court=FMOD_CREATESAMPLE),null??,  pointeur)
        if (resultat != FMOD_OK)
        {
            fprintf(stderr, "Impossible de lire le mp3\n");
            exit(EXIT_FAILURE);
        }

        FMOD_System_PlaySound(*&system, FMOD_CHANNEL_FREE, pSon, 0, NULL);
}


lorsque je met le corps de ma fonction chargerSon() dans mon fichier.cpp sa fonctionne, je pense que mon erreur est au moment où je passe system en paramètre à ma fonction mais j'aimerais bien être aiguiller s'il vous plait
merci