Page 2 sur 3

Re: tags des fichiers audio

Publié : jeu. 10/juin/2010 17:13
par Progi1984
Parole De JOJO a écrit :la wrapper de progi1984 a l'air interressante mais je n'ai pas reussi a l'utiliser. un message d'erreur s'affiche
Qui est ?

Re: tags des fichiers audio

Publié : ven. 11/juin/2010 15:29
par Parole De JOJO
fatal error : corumpt library ..... id3lib.lib

Re: tags des fichiers audio

Publié : sam. 12/juin/2010 8:17
par Progi1984
Essaie de le retélécharger le fichier : http://rwrappers.googlecode.com/svn/tru ... id3lib.lib

Re: tags des fichiers audio

Publié : dim. 13/juin/2010 9:57
par Parole De JOJO

Code : Tout sélectionner

*mp3 = ID3Tag_New()
ca bloque ici en disant "invalid memory access

Re: tags des fichiers audio

Publié : dim. 13/juin/2010 22:34
par Progi1984
Tu as bien fait l'include et tout ?

Re: tags des fichiers audio

Publié : lun. 14/juin/2010 11:14
par Parole De JOJO
je sais pas, j'ai ouvert le code tel quel apres l'avoir telechrge

quel include il fallait faire?

Re: tags des fichiers audio

Publié : lun. 14/juin/2010 12:41
par Progi1984
Essaie avec ce ZIP : http://dl.free.fr/c8qvMLtyI
Tu es bien sous windows ?

Re: tags des fichiers audio

Publié : mar. 15/juin/2010 10:07
par Parole De JOJO
bien sur que je suis sur windows
j'ai essaye ton truc avec pure 4.30 et ca a enfin marche
mais on ne peut pas changer les tags (en tout cas je n'ai pas compris comment)

merci

Re: tags des fichiers audio

Publié : mar. 15/juin/2010 12:40
par Progi1984
Regarde dans RW_id3lib_Sample_01.pb, cette partie :

Code : Tout sélectionner

  ; Update the Comment Frame
  YourComment = InputRequester("RW_id3lib", "Comment :", "Comment at "+FormatDate("%dd/%mm/%yyyy %hh:%ii:%ss", Date()))
  *field = ID3Frame_GetField(*frame, #ID3FN_TEXT)
  ID3Field_SetASCII(*field, YourComment)
  ID3Tag_Update(*mp3)

Re: tags des fichiers audio

Publié : mer. 16/juin/2010 9:23
par boddhi
Pour info, si ça peut aider :

En-tête ID3 version 2 (ID3V2) :
  • 3 premiers octets : "ID3" ($494433)
  • octet suivant : Version majeure ID3
  • octet suivant : Révision mineure ID3
  • octet suivant : Flags ID3 (la plupart du temps $00)
  • 4 octets suivants : Taille totale du tag ID3 (- 10 octets correspondant à la taille de l'en-tête ID3)
Ex : $ 49 44 33 03 00 00 00 02 57 1F (NB : on a bien 10 octets)

Champ ID3 (TALB, TOPE, TIT2, ...) :
  • 4 premiers octets : Description du champ (TALB, TOPE, TIT2, ...)
  • 4 octets suivants : Taille de la valeur du champ
  • 2 octets suivants : Flags du champ ID3 (la plupart du temps $00. Note : en cas d'écriture, il vaut mieux laisser cette valeur qui permet la préservation du champ par d'autres applications de gestion des tags ID3)
  • Ensuite, ça se complique un peu !
    • Si la valeur du descripteur est une valeur numérique, elle sera codée classiquement en hexadécimal directement après le flag du champ ID3
    • Si, en revanche, c'est une valeur alphabétique (ou alphanumérique) :
      • si la valeur des 3 octets suivant le flag est $00 00 00, la valeur sera codée en ASCII
        Ex (TIT2) : $ 54 49 54 32 00 00 00 07 00 00 00 00 00 42 65 20 63 6F 6F 6C
      • si la valeur de l'octet suivant le flag est $01, elle sera immédiatement suivie du descripteur Unicode $FF FE ou $FE FF (soit, là aussi, au total 3 octets : $ 01 FF FE) puis de la valeur du champ terminée obligatoirement par un $00
        Ex (TIT2) : $ 54 49 54 32 00 00 00 0F 00 00 01 FF FE 42 00 65 00 20 00 63 00 6F 00 6F 00 6C 00
Espérant avoir été clair :)

Re: tags des fichiers audio

Publié : ven. 18/juin/2010 10:27
par Parole De JOJO
merci bcp c'etait tres clair
mais en lisant les donnees jee ne trouve pas la longueur total du tag
j'ai fait un readbyte() pour les septieme huitieme neuvieme et dixieme octet, aditionne le tout et ca ne correspond pas a la longueur du tag

Re: tags des fichiers audio

Publié : ven. 18/juin/2010 11:56
par boddhi
Ton processeur est un Intel ou un Motorola ?

Re: tags des fichiers audio

Publié : ven. 18/juin/2010 13:39
par Parole De JOJO
intel

Re: tags des fichiers audio

Publié : ven. 18/juin/2010 14:35
par boddhi
Ok

Essaie ce bout de code pour lire l'en-tête ID3v2 :

Code : Tout sélectionner

; ****
; **** Lecture En-tête ID3V2
; **** Auteur : Boddhi           
; ****
If ReadFile(0,"C:\zic.mp3")
  Define.i *tampon.i
  Define.i TagID3       ; EnTete ID3v2
  Define.s Tag          ; Tag ID3
  Define.i TagVM        ; Version majeure
  Define.i TagRM        ; Révision mineure
  Define.i TagFlag      ; Flag tag ID3
  Define.i TagTaille    ; Taille tag ID3
  Define.s TagTailleBin ; Taille binaire tag ID3
  Define.w Compteur1,Compteur2 ; Compteurs Boucles
  
  *tampon=AllocateMemory(10)
  TagID3=ReadData(0,*tampon,10)
  CloseFile(0)
  Tag=PeekS(*tampon,3)
  TagVM=PeekB(*tampon+3)
  TagRM=PeekB(*tampon+4)
  TagFlag=PeekB(*tampon+5)
  TagTailleBin=RSet(Bin(PeekB(*tampon+6)),7,"0")
  TagTailleBin+RSet(Bin(PeekB(*tampon+7)),7,"0")
  TagTailleBin+RSet(Bin(PeekB(*tampon+8)),7,"0")
  TagTailleBin+RSet(Bin(PeekB(*tampon+9)),7,"0")
  
  TagTaille=BinVal(TagTailleBin)
  Debug TagTaille ; Taille du bloc ID3
  ; Ajouter 10 à TagTaille pour avoir l'adresse de début du bloc suivant
  Debug Hex(TagTaille+10) ; Début du bloc suivant => Vérifie dans ton éditeur héxa
  FreeMemory(*tampon)
EndIf
Donc dans le principe, pour lire tous tes champs ID3 (TALB,...) :
  • Tu lis l'en-tête,
  • Après l'en-tête, tu fais une boucle qui récupère chaque champ en faisant en sorte que
    ta position dans le fichier ne dépasse pas la taille du bloc ID3 ( Loc(#File)<TailleBloc ),
  • Aide-toi d'un Select...Case...Default...End Select pour déterminer pour chaque champ sa taille exacte et incidemment la position du champ suivant
Ci-dessous, une liste non exhaustive de ces champs :
http://jampal.sourceforge.net/frames.html

Espérant que cela puisse t'aider...

Re: tags des fichiers audio

Publié : dim. 20/juin/2010 20:56
par Parole De JOJO
BinVal() ????
il n'y a pas de fonction qui repond a ce nom

merci quand meme