Хочу сделать свой сканер mp3 i wav, но как оттуда тэги цеплять не представляю, прога находит успешно эти файлы но теперь уперся в то как выдернуть оттуда битрейт, название композиции, стерео, моно, название альбома и так далее, короче все тэги которые в нем есть.
Поиск по форуму гичего не дал или не так искал.
По инету тоже ниче толкового за 20 минут не нашел или все кривое напроч.
Хочу сделать свой сканер mp3 i wav, но как оттуда тэги цеплять не представляю, прога находит успешно эти файлы но теперь уперся в то как выдернуть оттуда битрейт, название композиции, стерео, моно, название альбома и так далее, короче все тэги которые в нем есть.
Поиск по форуму гичего не дал или не так искал.
По инету тоже ниче толкового за 20 минут не нашел или все кривое напроч.
var
Form1: TForm1;
implementation
{$R *.dfm}
function readID3Tag(FileName: string): TID3Tag;
var
FS: TFileStream;
Buffer: array [1..128] of Char;
begin
FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
FS.Seek(-128, soFromEnd);
FS.Read(Buffer, 128);
with Result 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;
finally
FS.Free;
end;
end;
Код:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
with readID3Tag(OpenDialog1.FileName) do
begin
LlbID.Caption := 'ID: ' + ID;
LlbTitel.Caption := 'Titel: ' + Titel;
LlbArtist.Caption := 'Artist: ' + Artist;
LlbAlbum.Caption := 'Album: ' + Album;
LlbYear.Caption := 'Year: ' + Year;
LlbComment.Caption := 'Comment: ' + Comment;
if (Genre >= 0) and (Genre <=146) then
LlbGenre.Caption := 'Genre: ' + Genres[Genre]
else
LlbGenre.Caption := 'N/A';
end;
end;
end;
Отлично!! То что надо!! Просто и легко. Я сразу разобрался. Только разберусь где находится еще инфа разная, сам принцип главное понят.
Спасибо всем кто помог! Еще занятие есть на пару деньков теперь.