IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

OpenGL Discussion :

FMOD -> Ajouter de la musique


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Par défaut FMOD -> Ajouter de la musique
    Bonjour tout le monde,

    j'ai lié la librairie de FMOD à mon projet pour pouvoir l'utiliser.

    J'ai donc procédé de la façon suivante :

    Déclaration variable + #include :#include "fmod.h"
    FSOUND_STREAM *music = NULL; Dans la fonction init() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FSOUND_Init(44100, 32, 0);
    music = FSOUND_Stream_Open("C:\\cours\\streams\\Brothers.mp3", 0, 0, 0);
    FSOUND_Stream_SetLoopCount(music, -1); /* On active la répétition de la musique à l'infini */
    FSOUND_Stream_Play(FSOUND_FREE, music);
    Et enfin, dans un appel clavier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    case GLUT_KEY_F3 :  
     
    FSOUND_Stream_Close(music);
    FSOUND_Close();
    break;
    Je ne sais pas si j'ai le droit de disposer le code de cette façon. A priori je dirais oui mais bon ...
    Par contre, pas d'erreur de compilation, mais lors de l'exécution, j'ai la belle erreur suivante :

    Exception non gérée à 0x0001cf22 dans projet.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x0001cf22.
    Puis le fichier gs_support.c
    s'ouvre est à la ligne 131, j'ai une flèche verte avec la prochaine instruction qui sera exécutée "lorsque le thread retourne de la fonction en cours"
    Voici le bout de code de ce fichier qui semble être visé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    127 GetSystemTimeAsFileTime(&systime.ft_struct);
    128 #if defined (_WIN64)
    129     cookie = systime.ft_scalar;
    130 #else  /* defined (_WIN64) */
    131     cookie = systime.ft_struct.dwLowDateTime;
    132     cookie ^= systime.ft_struct.dwHighDateTime;
    133 #endif  /* defined (_WIN64) */
    Voila, si jamais vous avez une idée

    Merci d'avance.

  2. #2
    Membre éprouvé Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Salut,

    Quel version de Fmod utilises tu ?

    Juste au cas où, il y a un petit tutoriel sur developpez.com de Fmod Ex :

    tutoriel Fmod Ex

    Si non concernant ton problème on dirait que c'est un problème d'adresse.

    As tu bien initialisé Fmod au démarrage de ton application ? Ce que je me souviens de appli utilisant Fmod ce genre d'erreur arrivaient quand Fmod était pas initialisé correctement. Un truc du genre :

    FMOD_SYSTEM *sys;
    FMOD_System_Create(&sys);
    FMOD_System_Init(sys, 4, FMOD_INIT_NORMAL, NULL);
    Si non regarde le lien que je t'ai mis plus haut, y a tout expliqué dedans.

    ps : y a pas une section audio dans developement jeux, 2d, 3d car ca a pas avoir grand chose avec opengl, tu auras plus de chance de trouver des réponses dans la section audio.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Par défaut
    Merci Robxley pour ton aide!

    Je suis allez voir le tutoriel mais j'ai quelques questions à propos de l'sintallation ( j'ai téléchargé FMOD à l'adresse donnée pour que se soit plus sur que le mien).

    Je l'ai donc installé à l'endroit suivant : C:\Program Files\FMOD SoundSystem\FMOD Programmers API Win32

    et j'ai rajouté dans mon code les trois lignes que tu m'as donné. Mais j'ai pas mal d'erreurs qui sont apparues comme par exemple :

    Erreur 1 error C2143: erreur de syntaxe*: absence de ';' avant '*' 54

    Erreur 2 error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut 54
    Avec a la ligne 54 : Voila, je ne comprends pas :s

    Si jamais vous savez n'hésitez pas :p

    Merci d'avance

  4. #4
    Membre éprouvé Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Euh oauip bizarre effectivement.

    Je dirais à première vue de vérifier le bon ajout de la librairie à votre projet.

    Le train train quotidienne, l'ensemble des #include nécessaires, l'ajout des .lib ...

    Pouvez - vous me donner un peu plus de renseignement sur votre compilateur, le langage utilisé C ou C++. Comme indiquer dans le tutorial en C++ la librairie marche qu'avec VS C++.

    J'ai que peu de renseignement concernant votre code pour pouvoir vous aider comme ça. Si vous pouvez le poster à la rigueur.

    Si non à premier vue pour FMOD_SYSTEM tout le type est en majuscule dans le tutorial, et dans le morceau de code que vous donnez vous déclarez la variable sys avec le type fmod_SYSTEM. Après est-ce un oublie seulement lors de votre post, je sais pas

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Par défaut
    Oui désolé ça manque d'informations. Alors :

    -> Je suis sous VS2008 en C++.

    -> J'ai dans mon projet les repertoires :

    ** include : fmod.h, fmod_errors.h, fmoddyn.h, wincompat.h
    ** lib : libfmod.a

    -> Dans le Debug repertoire du .exe, le fichier : fmod.dll.

    -> sous VS2008 je fais :

    ** projet -> paramètres -> C++ -> général -> autres repertoires include (et je met ici le chemin vers le repertoire include).
    ** projet -> paramètres -> Editeur de liens -> entrée -> dependance supp ( et je met ici la librairie libfmod.a


    Ensuite dans mon code, je déclare :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "fmod.h"
    #include "fmod_errors.h"
    54  FMOD_SYSTEM *sys;
    55  FMOD_System_Create(&sys);
    56  FMOD_System_Init(sys, 4, fmod_INIT_NORMAL, NULL);
    57  FMOD_SOUND   *sound;
    58  FMOD_CHANNEL *channel;
    Puis dans le fonction init() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    111  FMOD_System_CreateStream(sys, "C:\\cours\\musiques\\Brothers.mp3", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0, &sound);
    112  FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, sound, 0, &channel);

    Voila pour le code, mais j'ai toujours un tas d'erreurs comme :

    Erreur 2 error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut 54

    Erreur 5 error C2440: 'initialisation'*: impossible de convertir de 'int **' en 'int' 55

    Erreur 6 error C2065: 'fmod_INIT_NORMAL'*: identificateur non déclaré 56

    Erreur 17 error C2065: 'FMOD_2D'*: identificateur non déclaré
    112

    Erreur 20 error C3861: 'FMOD_System_PlaySound'*: identificateur introuvable 113



    ...
    Voila j'éspère que c'est plus clair.

    Si jamais vous avez des solutions n'hésitez pas

    Merci

  6. #6
    Membre éprouvé Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Par défaut
    Normalement lors de l'installation de Fmod, il y a plusieurs exemples qui sont installés pour VS.

    Regarde si tu arrives à compiler les exemples données.
    Si non pour ce qui est de l'ajout des librairies pour VS j'ai des doutes sur libfmod.a

    Après vérification dans les exemples donnés avec VS ils incluent lfmodex_vc.lib et non libfmod.a qui est plus fais pour gcc je dirais.

    Si tu n'arrives pas à trouver ton problème après je vois pas trop. Mes compétences dans cette librairie sont limitées et remontent à loin .
    Je te conseillerai de regarder les exemples qui y sont donnés. Il y en a des très simples avec le stricte minimum pour une première utilisation.

Discussions similaires

  1. Ajouter de la musique à l'ouverture d'une JFrame
    Par jean_bobi dans le forum Agents de placement/Fenêtres
    Réponses: 20
    Dernier message: 29/03/2015, 18h38
  2. [FMOD] Récupérer un canal (une musique)
    Par outmane15 dans le forum FMOD
    Réponses: 1
    Dernier message: 12/04/2012, 10h01
  3. [Lazarus] Ajouter de la musique
    Par tartiflette69 dans le forum Lazarus
    Réponses: 1
    Dernier message: 28/05/2007, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo