Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

FMOD Discussion :

Ne veut pas lire les sons :(


Sujet :

FMOD

  1. #1
    Rédacteur

    Ne veut pas lire les sons :(
    Voilà, ça fait une heure que j'essaye de faire fonctionner FMOD Ex sous OpenGL pour juste lire un simple son, mais rien ne marche... Je sais déjà que je ne peux pas utiliser FMOD Ex avec les fonctions C++ (pas compatibles avec les compilos MinGW), donc j'utilise les fonctions C, enfin ça change pas grand chose.

    J'ai donc bien suivi les tutoriaux livrés avec, mais rien n'y fais, ça ne veut pas lire les fichiers...

    J'ai donc mes 4 variables :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    FMOD_RESULT result;
    FMOD_SYSTEM * systeme;
    FMOD_SOUND * sound;
    FMOD_CHANNEL * channel;

    Dans la fonction InitOpenGL :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    result = FMOD_System_Create (&systeme);
     
       if (result != FMOD_OK)
          std::cerr << "Erreur";
     
       result = FMOD_System_Init (systeme, 100, FMOD_INIT_NORMAL, 0);
     
       if (result != FMOD_OK)
          std::cerr << "Erreur";
     
       result = FMOD_System_CreateSound (systeme, "var.mp3", FMOD_DEFAULT, 0, &sound);
     
       result = FMOD_System_PlaySound (systeme, FMOD_CHANNEL_FREE, sound, false, &channel);

    Et dans shutdown :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    FMOD_System_Release (systeme);


    Normalement tout devrait marcher, mais rien ne se lance, pas de son, nada . Pourtant je n'ai aucune erreur...

    J'ai essayé également de changer CreateSound par CreateStream, sans succès, et d'ajouter :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    FMOD_System_Update (systeme);

    comme ils disent de le faire, mais idem, pas de son,...

    Quelqu'un saurait d'où ça vient ?

  2. #2
    Expert éminent sénior
    Chez moi ceci fonctionne correctement :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <fmod.h>
    #include <fmod_errors.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
     
    #define TRUE 1
    #define FALSE 0
     
     
    int main(int argc, char *argv[])
    {
        FMOD_SYSTEM     *system;
        FMOD_SOUND      *sound;
        FMOD_CHANNEL    *channel;
        FMOD_RESULT      result;
     
        //Creation du systeme
        result = FMOD_System_Create(&system);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //Initialisation du systeme avec 100 canaux
        result = FMOD_System_Init(system, 100, FMOD_INIT_NORMAL, NULL);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //Creation du son
        result = FMOD_System_CreateSound(system, "test.mp3",FMOD_DEFAULT,0, &sound);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //On joue le son tout de suite (pas en pause)
        result = FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound, FALSE, &channel);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //On attend 10 secondes
        sleep(5);
     
        //On libere le son
        result = FMOD_Sound_Release(sound);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //On ferme le systeme
        result = FMOD_System_Close(system);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //On libere le systeme
        result = FMOD_System_Release(system);
        if(result != FMOD_OK)
            return EXIT_FAILURE;
     
        //On sort
        return EXIT_SUCCESS;
    }


    Je pense avoir garder tous tes paramètres, j'ai ajouté un sleep au milieu pour donner du temps sinon le programme se ferme avant même d'avoir commencé la lecture, serait-ce cela ton problème ?

    Sinon regarde si ta bibliothèque est bien installée ou si ta carte son est bien configurée.

    Tu pourrais aussi essayer FMOD_SOFTWARE dans la fonction CreateSound,
    Jc

  3. #3
    Rédacteur

    Bon avec ton exemple et ceux de la doc, j'ai réussi à jouer mon son, sauf que seuls les sons wav marchent . J'ai essayé de lire un fichier mp3, rien à faire, ça ne marche pas ! J'ai même compilé l'exemple fourni avec le sdk qui charge leur fichier mp3 et ça ne marche pas, alors que le fichier mp3 est bien valide, ya bien une musique dessus .

    EDIT : visiblement je suis pas le seul à avoir ce problème : http://www.fmod.org/forum/viewtopic....;highlight=mp3 http://www.fmod.org/forum/viewtopic....;highlight=mp3

  4. #4
    Rédacteur

    Hop voilà c'est résolu ^^. La version 4.0.29 fonctionne pas, j'ai du retélécharger l'ancienne version 4.0.28 et tout marche. Etrange quand même ^^.

  5. #5
    Expert éminent sénior
    Citation Envoyé par Bakura
    Bon avec ton exemple et ceux de la doc, j'ai réussi à jouer mon son, sauf que seuls les sons wav marchent . J'ai essayé de lire un fichier mp3, rien à faire, ça ne marche pas ! J'ai même compilé l'exemple fourni avec le sdk qui charge leur fichier mp3 et ça ne marche pas, alors que le fichier mp3 est bien valide, ya bien une musique dessus .

    EDIT : visiblement je suis pas le seul à avoir ce problème : http://www.fmod.org/forum/viewtopic....;highlight=mp3 http://www.fmod.org/forum/viewtopic....;highlight=mp3
    Je suppose que la lecture du mp3 fonctionne avec un programme audio de base donc en principe tu as ce qu'il faut pour écouter un mp3.

    C'est donc sûrement un problème lié à FMOD et il faudra donc attendre qu'ils trouvent une solution ou le problème. La seule chose que je peux dire serait d'utiliser des .wav pour le moment...

    Jc

  6. #6
    Rédacteur

    Citation Envoyé par fearyourself
    Je suppose que la lecture du mp3 fonctionne avec un programme audio de base donc en principe tu as ce qu'il faut pour écouter un mp3.

    C'est donc sûrement un problème lié à FMOD et il faudra donc attendre qu'ils trouvent une solution ou le problème. La seule chose que je peux dire serait d'utiliser des .wav pour le moment...

    Jc
    Comme j'a dit au dessus j'ai corrigé, c'est juste la nouvelle version qui marche pas, un retour à l'ancienne release et plus de problème !

  7. #7
    Rédacteur

    En tout cas, vraiment génial cette librairie ! Je suis en train d'expérimenter tous les effets DSP, c'est d'une facilité enfantine pour avoir pleins d'effets marrants (echo, distortion,...). Demain j'essayerai les sons 3D mais ça m'a l'air également super facile !

  8. #8
    Expert éminent sénior
    Citation Envoyé par Bakura
    Comme j'a dit au dessus j'ai corrigé, c'est juste la nouvelle version qui marche pas, un retour à l'ancienne release et plus de problème !
    Oui c'est sûrement un bug qui sera corrigé rapidement...


    En tout cas, vraiment génial cette librairie ! Je suis en train d'expérimenter tous les effets DSP, c'est d'une facilité enfantine pour avoir pleins d'effets marrants (echo, distortion,...). Demain j'essayerai les sons 3D mais ça m'a l'air également super facile !
    N'oublie pas de regarder le très bon tutoriel de khayyam90 sur comment structurer ton moteur de son :

    http://khayyam.developpez.com/articles/cpp/fmodex/

    Jc

  9. #9
    Rédacteur

    Oui j'avais déjà vu ce tuto, je le garde dans les favoris quand j'aurais besoin de créer quelque chose de structuré.

  10. #10
    Candidat au Club
    Désolé de ressortir ce vieux topic, mais j'ai un soucis.
    J'avais testé le code de fearyourself il y a une semaine, et tout fonctionnais parfaitement, mais aujourd'hui, re-test et impossible d'initialiser le système:

    le code que j'ai modifié pour connaitre la raison du plantage:

    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
    27
    28
    29
    30
    31
    32
    33
    #include <fmodex/fmod.h>
    #include <fmodex/fmod_errors.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
     
    #define TRUE 1
    #define FALSE 0
    #define TEST() if(result != FMOD_OK) \
    		{printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result)); \
    		return EXIT_FAILURE;}
     
     
     
    int main(int argc, char *argv[])
    {
        FMOD_SYSTEM     *system;
        FMOD_SOUND      *sound;
        FMOD_CHANNEL    *channel;
        FMOD_RESULT      result;
     
        //Create System
        result = FMOD_System_Create(&system);
    	printf("System Creation\n");
        TEST();
     
     
        //Init System with 100 channels
        result = FMOD_System_Init(system, 100, FMOD_INIT_NORMAL, 0);
    	printf("System Init\n");
        TEST();
     
    ... etc


    et voilà ce que j'obtiens dans la console :
    ******@**-laptop ~/Documents/PRCO - project/tests/FMODEx_test $ ./test
    System Creation
    System Init
    FMOD error! (62) Error initializing output device.
    Edit: Après redémarrage du système, ça remarche, donc en gros, sa fonctionne un peu quand ça veut bien!

    Vous avez une idée d'où ça peut venir et comment résoudre ça?

  11. #11
    Responsable 2D/3D/Jeux

    Si vous utilisez Linux, oui j'ai une idée.

    Moi j'ai de gros problème entre FMOD, et Linux ( son saccadé, et peut pas se lancer si un autre son est joué ).
    Donc pour faire plus simple, FMOD ne s'initialise pas, si on utilise déjà la sortie son ( firefox a quelque fois se pouvoir ), ou si, on ferme mal la sortie son, du programme FMOD juste avant .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Nouveau membre du Club
    J'ai aussi ce problème là, hier soir mon programme lisait les sons, et ce matin plus rien ...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    FMOD error! (62) Error initializing output device.


    Il y a une solution pour que l'initialisation marche a tous les coups, ou alors FMOD fait ce qu'il veut ?

  13. #13
    Responsable 2D/3D/Jeux

    Première question; Êtes vous sous linux?
    Deuxième question: Si oui, utilisiez vous un logiciel produisant lui aussi du son?


    Sous linux, on ne peut pas avoir deux fois la même source produisant deux sons différents ( enfin je le dis très mal ). Mais dans la conclusion, cela donne, que si le préiphérique du son est utilisé par autre chose, FMOD ne va pas pouvoir récupéré ce préiphérique pour jouer du son.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    Modérateur

    Sous linux, il faut aussi voir quel systeme de son on utilise avec fmod : OSS, ALSA, ... ca change déja pas mal de trucs.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Responsable 2D/3D/Jeux

    Citation Envoyé par wax78 Voir le message
    Sous linux, il faut aussi voir quel systeme de son on utilise avec fmod : OSS, ALSA, ... ca change déja pas mal de trucs.
    Chez moi, FMOD par default prennait ALSA.
    Et puis après, il faut écrire ajouter un flag à l'initialisation de FMOD pour prendre autre chose en compte.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  16. #16
    Modérateur

    Citation Envoyé par LittleWhite Voir le message
    Chez moi, FMOD par default prennait ALSA.
    Et puis après, il faut écrire ajouter un flag à l'initialisation de FMOD pour prendre autre chose en compte.
    Tout à fait sinon fmod va prendre le bazar par defaut qui n'est pas toujours le meilleur.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Nouveau Candidat au Club
    jai télécharger fmodex et je l'ai installé sur ubunto, j'aimerai faire un exemple pour tester sa fonctionnalité , jai tombé sur le code de fearyourself jai fait du copie collé mais
    ça ne fonctionne pas
    et voilà ce que j'obtiens dans la console :

    root@ubuntu_8:~/Desktop/mes_doc/sound# gcc 2exmpl.c -o exe -lfmodex
    root@ubuntu_8:~/Desktop/mes_doc/sound# ./exe
    ./exe: error while loading shared libraries: libfmodex.so: cannot open shared object file: No such file or directory

    est ce que vous pouvez m'aider , je ne sais pas où se situe le pb exactement est ce que fmodex n'est pas bien installé ou ????
    et merci d'avance