Problème à l'écriture d'un Tag MP3

Résolu
Daemonight Messages postés 40 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 29 décembre 2010 - 28 août 2005 à 20:56
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 1 sept. 2005 à 18:51
Hello !
cela fait un petit bout de temps que je me prends la tête sur un épineux problème :
je suis en train de faire un prog (non , pas possible ?) dans lequel il faut à un moment donné que je change l'ID3 TAG d'un fichier MP3.
J'ai regardé toutes les sources en rapport avec ça, et j'ai percuté que le tag était en fait de la forme (pour la version 1.0)

"TAG" & titre & artiste & album & année & commentaitre & "ÿ"

le tout faisant 127 caractères de long.
Voila ma Sub pour écrire le tag :

If Dir(fichier) <> "" Then
Open fichier For Binary As #1
Get #1, LOF(1) - 127, ancien_tag
If Left(ancien_tag, 3) = "TAG" Then
Put #1, LOF(1) - 127, tag_final
Else
Put #1, LOF(1), tag_final
End If
Close #1
End If

Je suis sûr de ma variable tag_final, elle est formée comme indiqué plus haut. Mon soucis, c'est que lorsque que j'enregistre le tag de cette façon, et que je vais par la suite sur le fichier mp3, bouton droit, propriété, onglet résumé, avancé, et bin, ça a pas changé ! c'est toujours l'ancien tag (alors que lorsque je lit le tag avec MON programme et non pas avec Windows, c'est bien celui que j'ai mis)

Si quelqu'un voit où est l'épine, merci de me le dire, parce que là, je sèche...

<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...

3 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
1 sept. 2005 à 18:51
ça commence par ID3x

le x représente la version (en binaire)

ça se trouve au début, toujours devant les trois FFF, mais pas forcémént à l'octet zéro.

suivi par 2 octet réservés, et ensuite 4 octets pour la taille du tag

la taille est toujours codée sur 7 bits, exemple:

00 00 00 32 --> 50

00 00 01 32 --> 128 + 50 = 178



ensuite suivant le type de version, le format peut être est différent

on peut trouver optionnellement et pas forcément dans l'ordre, plusieurs type,

un nom sur 4, une taille codée sur 4, et 3 autres caractères:


<li>PCNT - Play counter</li>
<li>TRCK - Track (ID3v2.2: TRK)</li><li>TENC - Encoded by (ID3v2.2: TEN)</li><li>WXXX - Link to</li><li>TCOP - Copyright</li><li>TOPE - Original artist</li><li>TCOM - Composer</li><li>TCON - Genre (ID3v2.2: TCO)</li><li>COMM - Comment (ID3v2.2: COM)</li><li>TYER - Year (ID3v2.2: TYE)</li><li>TIT2 - Title (ID3v2.2: TT2)</li><li>TRCK - Track number (ID3v2.2: TRK)</li><li>TPE1 - Artist (ID3v2.2: TP1)</li><li>TALB - Album (ID3v2.2: TAL)</li><li>WOAF - Audio URL</li><li>WOAR - Artist URL</li><li>WCOM - Buy URL</li><li>USLT - Lyrics</li>

exemple: PISTE 12



T R C K . . . . . . . 1 2

61 54 52 43 00 00 00 03 00 00 00 31 32



exemple: GENRE Other



T C O N . . . . . . . o t h e r

54 43 4F 4E 00 00 00 06 00 00 00 4F 74 68 65 72



le genre peut être soit en clair, soit par son numéro, avec ou sans parenthèses

il ya pas de règles strictes, on peut rencontrer plein d'autres choses:

GEOB PRIV TENC TMED RJEX etc...



le Tag peut être surdimentionné, ce qui permet d'être modifié sans avoir à réécrire tout le fichier.



Daniel
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 août 2005 à 21:13
la Longueur du tag id3v1 c'est 128 octets,

en position Lof(1) - 127 là je suis d'accord


il y a peut-être présence d'un tag id3v2 qui est prioritaire.


Daniel
0
Daemonight Messages postés 40 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 29 décembre 2010 1
1 sept. 2005 à 17:22
effectivement, ca à l'air d'être ça...
J'ai commencé les recherche sur le site pour savoir comment detecter les différentes versions des tag (et agir en conséquence), sauf que toutes les sources qui traitent des tag d'une façon un peu plus aboutie sont trop compliqué pour moi (j'ai pas un niveau terrible ).
Comment on fait pour trouver quelle est la version du tag d'un mp3 ?
et qu'elles sont leur caractéristique ? (je les connait pour le 1.0 : titre as string*30, artiste, album, commentaire as string*30 et année as string*4, mais les autres version)

Merci

<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...
0
Rejoignez-nous