Partage
  • Partager sur Facebook
  • Partager sur Twitter

Accéder aux méta-information

des fichiers musicaux

    13 novembre 2007 à 17:58:18

    Bonjour, je veux créer un lecteur de fichier audio (je commence à savoir comment faire, se sera mon 3ième...), mais j'aimerais accéder aux méta-informations des fichier que je veux utiliser.

    Je veux par exemple avoir l'information sur le nom de la chanson, la groupe, l'album, le style, etc...

    Comment puis-je accéder à ces informations ?

    P.S.: je précise que je code sous Kubuntu, donc si je dois utiliser une librairie, elle doit être portable
    • Partager sur Facebook
    • Partager sur Twitter
      13 novembre 2007 à 18:01:11

      il est fort possible que ces informations soient codées dans le header du MP3
      Regarde le format MP3, il est possible que d'accéder a ces infos ne soit pas tres complexe a coup de fopen, de fseek, et de fread.
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        13 novembre 2007 à 18:04:58

        Je vais essayer de fouiller pour tester avec les fonctions que tu m'as donné.

        Est-ce que la technique est pareil pour les OGG ?
        • Partager sur Facebook
        • Partager sur Twitter
          13 novembre 2007 à 18:10:26

          ce sera 2 structues différentes, mais de hautes chances que ce soit dans le header aussi.
          Ouvre ça avec un éditeur hexa, et recherche tes chaines : haute chance qu'elles soient en clair.
          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            13 novembre 2007 à 20:26:09

            J'ai essayé d'utiliser ID3lib, mais je n'y arrive pas.

            J'ai regardé dans la documentation et voici se que j'ai essayer.

            1. ID3_Tag myTag;
            2.     myTag.Link("nice_music.mp3");
            3.     ID3_Frame* myFrame = myTag.Find(ID3FID_TITLE);
            4.     if (NULL != myFrame)
            5.     {
            6.         const char* title = myFrame->GetField(ID3FN_TEXT)->GetText();
            7.         cout << "Title: " << title << endl;
            8.     }


            Et voici l'erreur :
            -------------- Build: Debug in SFML ---------------
            Compiling: main.cpp
            /home/alexandre/Projet/SFML/main.cpp: In function «int main()":
            /home/alexandre/Projet/SFML/main.cpp:30: erreur: «class ID3_Field" has no member named «GetText"
            Process terminated with status 1 (0 minutes, 2 seconds)
            1 errors, 0 warnings


            J'ai copier le code depuis la documentation, je n'ai fait qu'adapter le nom du fichier musical.
            Je ne sais pas trop comment utiliser cette librairie. Peux-tu me donner un exemple simple d'utilisation ?
            • Partager sur Facebook
            • Partager sur Twitter
              13 novembre 2007 à 20:59:02

              Et si t'avais un peu plus chercher dans la documentation très complète tu aurais trouvé en quelques secondes que ce n'est pas GetText mais GetRawText

              De plus moi, je ne l'ai jamais utilisé cette librairie

              http://id3lib.sourceforge.net/api/index.html

              Autonomie 101
              • Partager sur Facebook
              • Partager sur Twitter
                13 novembre 2007 à 21:08:35

                J'avais été sur cette page de la doc et il me semblait clair que c'était GetText().

                Mais comme, il y a des exemple, dans la page que tu m'a donner, avec GetRawText(), je vais aller voir et je vais faire d'autre test.
                • Partager sur Facebook
                • Partager sur Twitter
                  13 novembre 2007 à 21:18:16

                  Citation : Wolfofnight

                  J'ai essayé d'utiliser ID3lib, mais je n'y arrive pas.

                  J'ai regardé dans la documentation et voici se que j'ai essayer.

                  1. ID3_Tag myTag;
                  2.     myTag.Link("nice_music.mp3");
                  3.     ID3_Frame* myFrame = myTag.Find(ID3FID_TITLE);
                  4.     if (NULL != myFrame)
                  5.     {
                  6.         const char* title = myFrame->GetField(ID3FN_TEXT)->GetText();
                  7.         cout << "Title: " << title << endl;
                  8.     }



                  Et voici l'erreur :

                  -------------- Build: Debug in SFML ---------------
                  Compiling: main.cpp
                  /home/alexandre/Projet/SFML/main.cpp: In function «int main()":
                  /home/alexandre/Projet/SFML/main.cpp:30: erreur: «class ID3_Field" has no member named «GetText"
                  Process terminated with status 1 (0 minutes, 2 seconds)
                  1 errors, 0 warnings



                  J'ai copier le code depuis la documentation, je n'ai fait qu'adapter le nom du fichier musical.
                  Je ne sais pas trop comment utiliser cette librairie. Peux-tu me donner un exemple simple d'utilisation ?



                  ligne de code : "myFrame->GetField(ID3FN_TEXT)->GetText();"

                  description de l'erreur : "class ID3_Field has no member named «GetText"

                  Et toi tu me sort un lien sur la classe ID3_Tag... où est le rapport?

                  ID3_Field contient GetRawText et non GetText!

                  http://id3lib.sourceforge.net/api/class_i_d3___field.html
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 novembre 2007 à 21:25:21

                    J'avoue que j'aurais pu mieux regarder et faire plus attention, mais cet exemple sort directement de la doc...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 novembre 2007 à 22:07:40

                      Alors là je ne suis pas responsable de leurs fautes ;)

                      Lâches-pas!
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Accéder aux méta-information

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown