tags des fichiers audio

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: tags des fichiers audio

Message 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 ?
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message par Parole De JOJO »

fatal error : corumpt library ..... id3lib.lib
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: tags des fichiers audio

Message par Progi1984 »

Essaie de le retélécharger le fichier : http://rwrappers.googlecode.com/svn/tru ... id3lib.lib
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message par Parole De JOJO »

Code : Tout sélectionner

*mp3 = ID3Tag_New()
ca bloque ici en disant "invalid memory access
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: tags des fichiers audio

Message par Progi1984 »

Tu as bien fait l'include et tout ?
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message par Parole De JOJO »

je sais pas, j'ai ouvert le code tel quel apres l'avoir telechrge

quel include il fallait faire?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: tags des fichiers audio

Message par Progi1984 »

Essaie avec ce ZIP : http://dl.free.fr/c8qvMLtyI
Tu es bien sous windows ?
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message 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
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: tags des fichiers audio

Message 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)
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: tags des fichiers audio

Message 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 :)
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message 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
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: tags des fichiers audio

Message par boddhi »

Ton processeur est un Intel ou un Motorola ?
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message par Parole De JOJO »

intel
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: tags des fichiers audio

Message 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...
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: tags des fichiers audio

Message par Parole De JOJO »

BinVal() ????
il n'y a pas de fonction qui repond a ce nom

merci quand meme
Répondre