Taggueur de fichier MP3

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Taggueur de fichier MP3

Message par olivier »

Comme dab ce n'est pas encore fini, mais il commence à bien marcher.

Voila ici les sources : http://stef-o.chez.tiscali.fr/taggueur.zip

N'oubliez pas d'installer la lib vidéo de Chriss fournie dans le ZIP

J'attend vos remarques :idea:
Vive le temps libre !
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

:roll: Ton lien est nase.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Non il est bon mais je ne sais pas pourquoi il ne marche pas là ????
Copie l'adresse dans le naviguateur et :D

Et si tu sais pourquoi cela ne marche pas, j'aimerais bien savoir la betise que j'ai fait.
Vive le temps libre !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ou bien enregistrer la cible sous!
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

nico a écrit :Ou bien enregistrer la cible sous!
Ca ne fonctionne pas non plus, ca dl la page qui affiche le message d'erreur et donne un zip corrompu (logique).
Multimania utilisait ce système, il faut créer une page vierge avec le lien direct depus le site et non cliquer sur ce lien depuis un autre site.
"Qui baise trop bouffe un poil." P. Desproges
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

J'ai essayé ta lib. Ca marche nikel pour les MP3. :P
Par contre, ça ne marche pas avec les WMA ! :cry:

Tu ne serais pas comment faire ? Ou si tu as le temps ... :D

Merci ++
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Non et les WMA est un format prioritaire de M.... et je ne veux pas y toucher!
Hors de question de cotionner microsoft alors que d'autres solutions existent.
désolé

a+
Vive le temps libre !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

propriétaire de Microsoft ^^
mais la faute est mignone (vive la dyslexie ^^)

Dri
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

N'importe quoi !

Dire que tu ne veux pas travailler sur le WMA pour ne pas cautionner Microsoft est vraiment une belle connerie.

T'es encore coincé dans la petite guéguerre Windows/Linux.

Bein mon vieux.

JL
Quand on me gonfle trop j'éclate, sinon ça va !
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Lukky a écrit :N'importe quoi !

Dire que tu ne veux pas travailler sur le WMA pour ne pas cautionner Microsoft est vraiment une belle connerie.

T'es encore coincé dans la petite guéguerre Windows/Linux.

Bein mon vieux.

JL
Je suis entièrement d'accord avec toi, mais il y a peu tu as bien dis
On peux être contre une idée, mais arrondir un peu les angles pour donner son avis n'a rien de déshonorant.

Pas la peine d'être aussi brutal.
Non ?
(Je ne veux surtout pas lancer un débat, mais toi tu es aussi très crus dans tes réponses, et pas que aujourd'hui, alors tu pourrais peut-être "arrondir aussi un peu les angles")
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

Bein déjà le méchant qui n'a pas arrondi les angles à attaqué une simple suggestion sans prétention qui n'avait pas lieu d'être aussi violamment contestée puisqu'il ne s'agissait que d'une proposition et non d'une opinion tranchée, c'était la raison de mon intervention.

Mais je ne contesterai pas tout de même mon manque de souplesse (ce serait par trop faire preuve de mauvaise foie) peut-être dans les mots, mais je garde le fond.

Et puis je ne veux pas lancer un autre débat sans rapport avec la choucroute :-)

Et puis t'as raison alors ...
Quand on me gonfle trop j'éclate, sinon ça va !
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Salut les grincheux, au lieu de raler sur mes commentaires... critiquez mon prog cela me sera plus utile :lol:

Paix dans le monde et pour commençer sur ce forum.
#heaven
Vive le temps libre !
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Moi j'ai des remarques sur ton Prog.

Je suis en train de l'utiliser pour me faire un lecteur MP3 avec LIB (posté dans je ne c plus quelle zone, ms bon...). Mais j'ai des pb :?

Il semble que ta LIB ne supporte pas le travail à la chaine...
Il y a des conflits mémoires et lorsque l'on charge des nouveaux Tag (surtout des V2), s'ils ne sont pas lisibles ou s'il manque des infos, certaines vieilles informartions remontent .

J'appele tes fonctions : GetMp3Infos(), ReadTagV1() et ReadTagV2() dans une boucle.
J'ai rajouté dans ta fonction GetMp3Infos() des appels de fonctions qui servent à supprimer toutes les infos dans les tags.
Malgré cela, lors de l'appel de ReadTagVx(), certains paramètres d'anciens tags restent. Et je me retrouve avec des chansons de Sum 41 qui font partis de l'album Phobia de Benni Benassi ... :?

Je suis en train de chercher d'où ca peut venir, mais pour l(instant je ne trouve pas.
Si tu peux jeter un coup d'oeil ca serait cool ! :P


Tu peux utiliser le progr que je susi en train de faire pour tester si tu veux.
Voici l'URL : ftp://luchezl@ftpperso.free.fr/Programm ... P_demo.rar
Ya un fichier Readme.txt qui explique comme l'Utiliser !
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

J'ai trouvé d'où vient le BUG : de la liste chainée de la Procédure ReadTagV2 (). Cette liste n'était pas bien vidée, donc elle gardée des info des tags précédents. Je l'ai corrigée :

Code : Tout sélectionner

Procedure.b ReadTagV2(fichier.s)
  Protected m_tag.ID3TagV23Header
  Protected m_flags.ID3TagV2Flags
  Protected m_frames.l
  Protected m_fr.ID3TagV23Frame
  Protected m_compteur.l : m_numFrames.l
  Protected m_taille.l
  Protected hOrgFile.l
  Protected m_identifiant.s

     hOrgFile = ReadFile(#READ_INPUT_FILE_TAG, fichier)    
     UseFile(#READ_INPUT_FILE_TAG)
     If hOrgFile = 0 
          ;MessageRequester("Error", "An error occured while opening " + fichier, 0)
          ProcedureReturn #False
     EndIf
    
     ; InitTagV2()
     ReadData(@m_tag, SizeOf(ID3TagV23Header))
     
     ; the size is coded on 7 bits, needed to for not be confused with a synchsignal
     m_taille = (m_tag\size[0] << 21) | (m_tag\size[1] << 14) | (m_tag\size[2] << 7) | m_tag\size[3]
     
     ; revisions are compatible between them but
     ; version aren't, so we must check this     
     If m_tag\version <> 3
        ;MessageRequester("Error", "Tag version is different than 2.3", 0)
        CloseFile(#READ_INPUT_FILE_TAG)
        ProcedureReturn #False
     EndIf
    
     ProcessFlags(m_tag\flag, @m_flags)
    
     If m_flags\unknown
        ;MessageRequester("Error", "Unkown flag detected !", 0)
        CloseFile(#READ_INPUT_FILE_TAG)
        ProcedureReturn #False
     EndIf
    
     ReadFrames(m_tag, @m_numFrames)
    
     ; Reset the list index before the first element.    
     ;; ResetList(frameArray())               
     ;; For m_compteur = 0 To m_numFrames - 1
     While FirstElement(frameArray())

        ;; NextElement(frameArray())
        m_identifiant = Space(4)
        m_identifiant = Chr((frameArray()\identifiant[0])) + Chr((frameArray()\identifiant[1])) + Chr((frameArray()\identifiant[2]))  + Chr((frameArray()\identifiant[3])) 
        m_taille = (frameArray()\size[0] << 21) | (frameArray()\size[1] << 14) | (frameArray()\size[2] << 7) | frameArray()\size[3]

        Debug m_identifiant + " -> " + frameArray()\datas + " ("+Str(m_taille)+")"
        Select m_identifiant
            
            Case "TIT2"
                If (frameArray()\datas)
                        m_tagV2Info\title = frameArray()\datas
                EndIf
            
            Case "TPE1"
                If (frameArray()\datas)
                        m_tagV2Info\artist = frameArray()\datas
                EndIf
            
            Case "TALB"
                If (frameArray()\datas)
                        m_tagV2Info\album = frameArray()\datas
                EndIf
                
            Case "TYER"
                If (frameArray()\datas)
                        m_tagV2Info\year = frameArray()\datas
                EndIf
                
            Case "TCON"
                If (frameArray()\datas)
                        m_tagV2Info\genre = frameArray()\datas
                EndIf
                
            Case "COMM"
                If (frameArray()\datas)
                        m_tagV2Info\comments = frameArray()\datas
                EndIf
                
            Case "TCOM"
                If (frameArray()\datas)
                        m_tagV2Info\composer = frameArray()\datas
                EndIf
                
            Case "TCOP"
                If (frameArray()\datas)
                        m_tagV2Info\copyright = frameArray()\datas
                EndIf
                
            Case "WXXX"
                If (frameArray()\datas) 
                        m_tagV2Info\url = frameArray()\datas
                EndIf
                
            Case "TENC"
                If (frameArray()\datas) 
                        m_tagV2Info\encoded_by = frameArray()\datas
                EndIf
                
            Case "TRCK"
                If (frameArray()\datas)
                        m_tagV2Info\track = frameArray()\datas
                EndIf
                
            Case "TOPE"
                If (frameArray()\datas)
                        m_tagV2Info\orig_artist = frameArray()\datas
                EndIf
                
        EndSelect
        
        DeleteElement(frameArray())

    Wend
    
    CloseFile(#READ_INPUT_FILE_TAG)

    ProcedureReturn #True

EndProcedure
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre