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

Autres éditeurs Discussion :

lecture d'une musique


Sujet :

Autres éditeurs

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 6
    Points
    6
    Par défaut lecture d'une musique
    Voila Je souhaiterais savoir comment (et si on peut) lire un fichier musical mp3, mdi, wav, ... depuis une variable.
    C'est-à dire je voudrais faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string mon_fichier= le contenu d'un fichier son
    Play(mon_fichier); //joue de la musique
    Pour le moment je lit sans problème des sons depuis un fichier avec la librairie fmod. Mais cette derniere ne me permet pas de faire ce que je veux (enfin je crois).
    Merci pour vos idées.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Oui on peut, mais sûrement pas en C++ standard...

    Si FMod te semble trop limitée, trouve une autre bibliothèque. Tu veux faire quoi au fait ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    je voulais créer mon fichier wav via un code en C++ et l'écouter avant de le sauvegarder sur le disque dur. Pour éviter de devoir a chaque fois le réécrire pour l'écouter.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Regarde du côté de la fonction FSOUND_Sample_Load avec l'option FSOUND_LOADMEMORY, ça a l'air de faire ce que tu souhaites.
    Sinon DirectMusic le fait à coup sûr, mais ce sera un poil plus compliqué à mettre en oeuvre.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bon maintenant c'est bon j'ai trouve la fonction mais vlan un nouveau probleme arrive
    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
     
    int Musique()
    {
        std::ifstream fichier("jules.mp3", std::ios_base::binary ); 
     
        if (!fichier) { std::cout<<"ne peut ouvrir le fichier "<<endl; return -1; }
     
    // recupere la taille des infos a lire
        fichier.seekg (0, std::ios_base::end); 
        int length = fichier.tellg(); 
        fichier.seekg (0, std::ios_base::beg); 
     
    // on lit le fichier
        std::string res(length, 0); 
        fichier.read(&res[0], length);
     
        fichier.close();
    /////////////////////////////////////////////////////
    // Jusque la tout va bien
    /////////////////////////////////////////////////////
        FSOUND_STREAM * notre_son;
     
        FSOUND_Init(44100, 32, 0);
        notre_son = FSOUND_Stream_Open(res.c_str(), FSOUND_LOADMEMORY , 0, res.length());
    	if (notre_son!=NULL) {
    	    FSOUND_Stream_Play(FSOUND_FREE, notre_son);
    	} else { cerr<<"pb"<<endl; }
         return 0;
    }
    je charge mon fichier en memoire
    Ca commence a lire mon fichier et tout-à coup violation d'acces memoire.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    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
     
    int Musique()
    {	std::ifstream fichier("son.mp3", std::ios_base::binary ); 
     
        if (!fichier) { std::cout<<"ne peut ouvrir le fichier : jules.mp3"<<endl; return -1; } 
     
    // recupere la taille des infos a lire 
        fichier.seekg (0, std::ios_base::end); 
        int length = fichier.tellg(); 
        fichier.seekg (0, std::ios_base::beg); 
     
    // on lit le fichier 
    	char *mus = new char[length+1];
        fichier.read(mus, length); 
     
        fichier.close(); 
     
        FSOUND_Init(44100, 32, 0);
     
    	notre_son = FSOUND_Stream_Open(mus, FSOUND_LOADMEMORY , 0, length);//charge la musique
     
    	if (notre_son!=NULL) {
    			FSOUND_Stream_Play(FSOUND_FREE, notre_son);
    	} else { cerr<<"pb"<<endl; }
     
         return 0;
    }
    J'ai contourne le probleme 'Access Violation'
    en ne passant plus par une variable de type string C'est bête car c'est pratique mais je ne trouvait pas d'autre solution

Discussions similaires

  1. connaitre la fin lors de la lecture d'une musique
    Par mathrix77 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 12/04/2008, 14h42
  2. Integrer une musique dans mon programme
    Par Tutux84 dans le forum C
    Réponses: 2
    Dernier message: 29/01/2005, 12h41
  3. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57
  4. inverser la lecture d'une requète
    Par nilaco dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/08/2003, 12h16
  5. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01

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