Mp3 et Tags Id3 - Delphi/Pascal - Programmation
Marsh Posté le 25-05-2003 à 12:58:48
Faut lire les 128 derniers octets dans une structure.
Fonction que j'utilise dans mon soft Ant Renamer :
www.antp.be/temp/ExtractID3.pas
(faudra faire un peu de ménage dedans pour l'utiliser)
Marsh Posté le 25-05-2003 à 13:04:18
Merci mais je ne connais pas tout dans ton fichier :
Si j'ai un fichier mp3 (c:\media\fichier.mp3) et que je veux stocker sa taille dans une variable (longueur), l'artiste et son titre dans deux autres variables (artiste, titre), je fais comment ?
Marsh Posté le 25-05-2003 à 13:26:42
tu déclares une variable de type TID3Info que tu passes à la fonction, ainsi que le nom de fichier, après tu utilises les champs que tu veux
Marsh Posté le 25-05-2003 à 14:15:58
Il me manque des fichiers avec ce .pas ...
[Fatal Error] ExtractID3.pas(203): File not found: 'functions_files.dcu'
Marsh Posté le 25-05-2003 à 14:24:04
Ouais mais ça tu t'en fous, tu le vires, comme j'ai dit faut un peu nettoyer. C'est un fichier parmis les nombreux fichiers d'un programme...
Idem pour ce qui est dans les {$IFDEF}, tu ne dois garder que ce qui est dans les {$ELSE} vu que tu n'utilises probablement pas d'unicode...
Marsh Posté le 25-05-2003 à 15:15:09
Merci bien ca marche mais j'ai encore qques petites questions...
Mon projet est tout simplement un lecteur mp3 ... et cela concerne l'ajout de fichiers dans une playlist. Je dois pour bien faire avoir chaque item de la liste sous forme "Artiste - Titre [LongueurPiste]". Je ne vois pas comment récupérer la longueur de chaque piste ... ou alors en ouvrant chaque fichier et avec la propriété MediaPlayer1.Lenght... mais c est tres fastidieux et tres long (j'ai testé)... Alors n'y a-t-il pas moyen de trouver cette longueur de piste via Id3 ?
Marsh Posté le 25-05-2003 à 15:18:57
C'est pas stocké dans l'ID3, et je pense que ce n'est stocké nulle part, il faut mesurer la longueur ou la calculer. Pour la calculer il faut le bitrate, je sais pas s'il est stocké ou mesuré lui aussi
Pour la mesurer, il faut (je suppose) parcourir tout le fichier, mais vu que je ne connais pas plus la structure des MP3, je ne sais pas t'aider plus
Mais il doit bien y avoir des tas de composants ou exemples de code qui font ça...
Marsh Posté le 25-05-2003 à 15:21:05
J'ai fait ceci :
Code :
|
Mais qu'est ce que c'est long et lent ... (avec un p4 2.4ghz ...)
Marsh Posté le 25-05-2003 à 15:23:14
bah oui, c'est normal que ce soit lent
Sinon quand tu écris
ToAdd:='[ '+IntToStr(m)+':'+IntToStr(s)+' ] '+ExtractFileName(OpenDialog1.Files[i]);
C'est plus clair de faire
ToAdd := Format('[ %d:%.2d ] %s, [m, s, ExtractFileName(OpenDialog1.Files[i])]);
Marsh Posté le 25-05-2003 à 15:25:56
c'est lent mais je trouve pas
Je continue mes investiguations si je trouve je fais signe
Marsh Posté le 25-05-2003 à 15:44:22
Hum ... on remarquera que lorsqu'on fait Alt+3 sous Winamp pour voir les propriétés du fichier sélectionné, la longueur ne se trouve pas avec les propriétés Id3 mais dans le cadre MPEG infos ...
Reste plus qu'a trouver ou écrire une fonction pour récuperer ces infos ...
(G mal a la tete )
Marsh Posté le 25-05-2003 à 15:59:18
Crazy-Eagle a écrit : la longueur ne se trouve pas avec les propriétés Id3 mais dans le cadre MPEG infos ... |
C'est ce que je disais idem pour le bitrate
Marsh Posté le 25-05-2003 à 16:13:13
Bah ué ... j'ai trouvé des trucs sur torry's Delphi mais c'est pas tres convainquant ... tu saurais me trouver ca ?
Marsh Posté le 25-05-2003 à 19:49:39
Bon j'ai trouvé une unit qui pourrait m'aider seulement c est pour delphi1 - 3 et avec la version 6 j'ai une dixaine d'erreurs ... Il y a-t-il moyen de l'adapter ?
Marsh Posté le 25-05-2003 à 19:52:58
Ça dépend des erreurs
Marsh Posté le 25-05-2003 à 21:56:48
[Warning] MPGTOOLS.PAS(1361): Method 'Clear' hides virtual method of base type 'TList'
[Warning] MPGTOOLS.PAS(2555): Symbol 'FileGetAttr' is specific to a platform
[Warning] MPGTOOLS.PAS(2591): Symbol 'FileGetAttr' is specific to a platform
[Warning] MPGTOOLS.PAS(2615): Symbol 'FileGetAttr' is specific to a platform
[Error] MPGTOOLS.PAS(3156): Incompatible types: 'TList' and 'Text'
[Error] MPGTOOLS.PAS(3156): Incompatible types: 'TListAssignOp' and 'String'
[Error] MPGTOOLS.PAS(3530): Left side cannot be assigned to
[Error] MPGTOOLS.PAS(3541): Incompatible types: 'TList' and 'file'
[Error] MPGTOOLS.PAS(3541): Incompatible types: 'TListAssignOp' and 'String'
A mon avis ca doit rien vous dire comme ca
Des que mon ftp sera a nouveau up je vous donnerai le *.pas que vous puissiez m'aider
Merci
Marsh Posté le 28-05-2003 à 11:22:00
BlackSUn a une bonne dose de source pour lire les tags et proprietes des fichiers multimedia, contacte le en MP pour voir.
Marsh Posté le 25-05-2003 à 12:55:52
Salut,
J'aimerais savoir comment faire pour récupérer le contenu des tags id3 d'un fichier mp3.
Sous forme de tableau ? I don't know
Merci