[fpc-pascal]id3 tagging in mp3 / vorbis
Michael.VanCanneyt at Wisa.be
Michael.VanCanneyt at Wisa.be
Mon Dec 29 15:01:48 CET 2003
On Sun, 28 Dec 2003, baron kractor wrote:
> Wondering if anyone had done any work with manipulating id3 tag information
> contained in mp3 / vorbis files from within fpc and could point me to some
> documentation?
This code reads the tag from an mp3 file:
program showmp3;
{$mode objfpc}
{$h+}
Uses Classes;
Type
TID3Tag = Packed Record
TAG : Array[1..3] of char;
Title : Array[1..30] of char;
Artist : Array[1..30] of char;
Album : Array[1..30] of char;
Year : Array[1..4] of char;
Comment : Array[1..30] of char;
Genre : Byte;
end;
Procedure ShowInfo(Fn : String);
Var
Info : TID3Tag;
begin
With TFileStream.Create(FN,fmOpenRead) do
try
Seek(-(SizeOf(Info)),soFromEnd);
Read(Info,SizeOf(Info));
With Info do
begin
Writeln('File : ',Fn);
Writeln('Title : ',Title);
Writeln('Artist : ',Artist);
Writeln('Album : ',Album);
Writeln('Year : ',Year);
Writeln('Comment : ',Comment);
Writeln('Genre : ',Genre);
end;
Finally
Free;
end;
end;
Var I : Integer;
begin
For I:=1 to ParamCount do
ShowInfo(Paramstr(i));
end.
Writing the tag can be done in the same manner.
Somewhere on internet (DSP/Torry's delphi pages) there is a 'mpgtools'
unit which can be compiled with FPC, it can also be used. I used to have
it in compiled form, but I can't find it, only the program which I used to
test :
program showextmp3;
{$mode objfpc}
uses mpgtools,sysutils;
begin
With TMPEGAudio.Create do
try
FileName:=Paramstr(1);
Writeln('Author',Artist);
Writeln('Duration ',FormatDateTime('hh:nn:ss',DurationTime));
finally
Free;
end;
end.
This is all I can do, hopefully it is enough to get you started...
Michael.
More information about the fpc-pascal
mailing list