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
Re: tags des fichiers audio
Publié : dim. 13/juin/2010 9:57
par Parole De JOJO
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