Получаем ID3Tag v1

Советы » Аудио » Получаем ID3Tag v1

    Byte 1-3 = ID 'TAG'   Byte 4-33 = Titel / Title   Byte 34-63 = Artist   Byte 64-93 = Album   Byte 94-97 = Jahr / Year   Byte 98-127 = Kommentar / Comment   Byte 128 = Genre }

type


  TID3Tag = record

    ID: string

[3];     Titel: string

[30];     Artist: string

[30];     Album: string

[30];     Year: string

[4];     Comment: string

[30];     Genre: Byte;   end

;

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');

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

;
 

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com