Les mp3 et leurs tags

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 603 fois - Téléchargée 29 fois

Contenu du snippet

Voici comment connaitre des infos sur le MP3.
Ce code ne marche pas tres bien (ou alors c'est a cause de windows XP, mais si ça ne vient pas de ça, cherchez une autres solution)
Il faut un OpenDialog et un bouton

Source / Exemple :


unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
 
type
TID3Tag = record
ID:string[3];
Titel:string[30];
Artist:string[30];
Album:string[30];
Year:string[4];
Comment:string[30];
Genre:byte;
end;
 
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
 
var
Form1: TForm1;
ID3Tag:TID3Tag;
 
implementation
 
{$R *.DFM}
 
procedure Lese_ID3Tag(Filename:string);
var
  Buffer:array[1..128] of char;
 F:File;

begin
  AssignFile(F, Filename);
  Reset(F,1);
  Seek(F,FileSize(F)-128);
  BlockRead(F, Buffer, SizeOf(Buffer));
  CloseFile(F);
  with ID3Tag do begin
    ID:=copy(Buffer,1,3);
    Titel:=copy(Buffer,4,30);
    Artist:=copy(Buffer,34,30);
    Album:=copy(Buffer,64,30);
    Year:=copy(Buffer,94,4);
    Comment:=copy(Buffer,98,30);
    Genre:=ord(Buffer[128]);
  end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Opendialog1.Execute then
  begin
     Lese_ID3Tag(opendialog1.filename);
    showmessage(id3tag.ID);
    showmessage(id3tag.Titel);
    showmessage(id3tag.Artist);
    showmessage(id3tag.Album);
    showmessage(id3tag.Year);
    showmessage(id3tag.Comment);
    showmessage(id3tag.Genre);
  end;
end;
 
end.

Conclusion :


Bon ce code n'est pas de moi mais je le cherchais alors je le met ici.

PUB :
delphiprog.fr.st

A voir également

Ajouter un commentaire

Commentaires

ce code marche pas chez moi, y'a une erreur de showmessage.(id3.genre);
end;
oui je sais,
moi j'ai enlevé ça
l'erreur, je crois que c une question de variable
damanix
Messages postés
24
Date d'inscription
samedi 7 septembre 2002
Statut
Membre
Dernière intervention
2 novembre 2002
-
const
Genres : array[0..146] of string =
('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge',
'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B',
'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska',
'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient',
'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical',
'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise',
'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop',
'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic',
'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta',
'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave',
'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk',
'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk',
'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival',
'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock',
'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus',
'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera',
'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove',
'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad',
'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo',
'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House',
'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat',
'Christian Gangsta','Heavy Metal','Black Metal','Crossover','Contemporary C',
'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop');

- il manquait ça par rapport à l'original je crois...
cs_grandvizir
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10 -
Bizarre, selon mp3DirectCut et un éditeur hexadécimal, j'avais dans l'ordre l'ID3 suivant:

TMP3Tag = record
Title, Artist, Album : string[30];
Year : string[4];
Infos : string[30];
Track, Style : char;
end;

Il manque donc le Track (n° de piste). Sinon, les tags de mp3DirectCut sont bien détectés. Mais ceci ne détecte pas toutes les infos !!! Ca dépend du type de tag.

[damanix]
Pertinente remarque

[Zangdar]
Il faut écrire: ShowMessage(IntToStr(id3tag.Genre));
devilssss
Messages postés
1
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
19 août 2007
-
avec le tableau de const
ca marche
showmessage(Genres[id3tag.Genre]);

mais es ce que c'est une liste officiel?
par ce que sur un morceau rock il m'affiche comedy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.