Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > ActiveX про MP3


Автор: tishaishii 8.4.2007, 12:12
Надо информацию из тегов MP3.
Explorer показывает эту инфу, значит, в виндовс есть уже встроенный механизм.
Надо активыкс.

Автор: Letov 25.4.2007, 16:13
С помощью программы на Delphi:
Код

{ 

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; 


Автор: Exception 25.4.2007, 17:14
Тебе контрол или библиотека нужна?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)