15 мая "Исходники.РУ" отмечают 20-летие присутствия в сети!
Поздравляем всех причастных и неравнодушных с юбилеем сайта!
И огромное спасибо всем, кто был с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как извлечь ID3 теги и информацию в заголовках MPEG из MP3 файлов ?

Ответ:
Предположим, Вам необходимо поместить список заголовков и времени звучания всех Ваших MP3 файлов, содержащихся в определённой директории .

Разместите на форме TEdit для имени каталога и TListBox для содержимого директории и вызовите:

  ScanMP3Folder (Edit1.Text, ListBox1.Items);


Вам потребуются компоненты TAudioInfo , и  TDirectoryScanner):

procedure ScanMP3Folder (const AFolder : string; AMP3List : TStrings);
var
  ds : TDirectoryScanner;
  a : TAudioInfo;
  Descr : string;
  i : integer;
begin
  ds := TDirectoryScanner.Create;
  a := TAudioInfo.Create;
  try
     ds.Recursive := True;
     ds.RegExprMask := '\.mp[23]';
     ds.BuildFileList (AFolder);
     for i := 0 to ds.Count - 1 do begin
       a.LoadFromFile (ds.Item [i].Name);
       if a.ID3.Ok
        then Descr := a.ID3.Artist + ' - ' + a.ID3.Title
        else Descr := ExtractFileName (ds.Item [i].Name);
       Descr := Descr + Format (' (%d sec)', [a.MpegDuration div 1000]);
       AMP3List.Add (Descr);
      end;
    finally begin
      a.Free;
      ds.Free;
     end;
   end;
end;

Андрей Сорокин
anso.da.ru