| 
| 
 | Вопрос # 3 040/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Подскажите пожалуйста, как работать с компонентом ID3Engine?
 надо прочитать из  муз. трэков, инфу. id3v1
 
|  |   Вопрос задал: Subsonic (статус: Посетитель)Вопрос отправлен: 25 июля 2009, 08:41
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 26 июля 2009, 16:53; участников в обсуждении: 3. 
|   | Вадим К (статус: Академик), 25 июля 2009, 11:31 [#1]:м, а в приложении Вы что написали? В чем то проблема? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | BloodVIRUS (статус: Посетитель), 25 июля 2009, 21:28 [#2]:Подсказываю, не юзать сторонние компоненты, а использовать это: Сразу после
 var
 Form1: TForm1;
 
 пишем
 
 Title,Artist,Album,Year,Genre,Comment:String;
 type
 TID3Rec = packed record
 Tag     : array[0..2] of Char;
 Title,
 Artist,
 Comment,
 Album   : array[0..29] of Char;
 Year    : array[0..3] of Char;
 Genre   : Byte;
 end;
 
 const
 MaxID3Genre=147;
 ID3Genre: array[0..MaxID3Genre] 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', 'AlternRock', 'Bass', 'Soul', '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 American',
 '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', 'Rhythmic 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 Rap',
 'Heavy Metal', 'Black Metal', 'Crossover', 'Contemporary Christian',
 'Christian Rock', 'Merengue', 'Salsa', 'Trash Metal', 'Anime', 'Jpop',
 'Synthpop'  {and probably more to come}
 );
 
 Далее в программу вставляешь код:
 
 procedure InfoR(mp3File:string);
 var
 ID3 : TID3Rec;
 fmp3: TFileStream;
 begin
 fmp3:=TFileStream.Create(mp3File, fmOpenRead);
 try
 fmp3.position:=fmp3.size-128;
 fmp3.Read(ID3,SizeOf(ID3));
 finally
 fmp3.free;
 end;
 if ID3.Tag <> 'TAG' then begin
 Title:='Неизвестно';
 Artist:='Неизвестно';
 Album:='Неизвестно';
 Year:='Неизвестно';
 Genre:='Неизвестно';
 Comment:='Неизвестно';
 
 end else begin
 Title:=ID3.Title;
 Artist:=ID3.Artist;
 Album:=ID3.Album;
 Year:=ID3.Year;
 Comment:=ID3.Comment;
 if ID3.Genre in [0..MaxID3Genre] then
 Genre:=ID3Genre[ID3.Genre]
 else
 Genre:=IntToStr(ID3.Genre);
 Comment:=ID3.Comment
 end;  end;
 
 
 Все в конце должно выглядеть так
 
 unit Unit1;
 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
 
 type
 TForm1 = class(TForm)
 Edit1: TEdit;
 Button1: TButton;
 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 
 var
 Form1: TForm1;
 Title,Artist,Album,Year,Genre,Comment:String;
 type
 TID3Rec = packed record
 Tag     : array[0..2] of Char;
 Title,
 Artist,
 Comment,
 Album   : array[0..29] of Char;
 Year    : array[0..3] of Char;
 Genre   : Byte;
 end;
 const
 MaxID3Genre=147;
 ID3Genre: array[0..MaxID3Genre] 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', 'AlternRock', 'Bass', 'Soul', '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 American',
 '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', 'Rhythmic 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 Rap',
 'Heavy Metal', 'Black Metal', 'Crossover', 'Contemporary Christian',
 'Christian Rock', 'Merengue', 'Salsa', 'Trash Metal', 'Anime', 'Jpop',
 'Synthpop'  {and probably more to come}
 );
 implementation
 
 {$R *.dfm}
 procedure InfoR(mp3File:string);
 var
 ID3 : TID3Rec;
 fmp3: TFileStream;
 begin
 fmp3:=TFileStream.Create(mp3File, fmOpenRead);
 try
 fmp3.position:=fmp3.size-128;
 fmp3.Read(ID3,SizeOf(ID3));
 finally
 fmp3.free;
 end;
 if ID3.Tag <> 'TAG' then begin
 Title:='Heizvestno';
 Artist:='Heizvestno';
 Album:='Heizvestno';
 Year:='Heizvestno';
 Genre:='Heizvestno';
 Comment:='Heizvestno';
 
 end else begin
 Title:=ID3.Title;
 Artist:=ID3.Artist;
 Album:=ID3.Album;
 Year:=ID3.Year;
 Comment:=ID3.Comment;
 if ID3.Genre in [0..MaxID3Genre] then
 Genre:=ID3Genre[ID3.Genre]
 else
 Genre:=IntToStr(ID3.Genre);
 Comment:=ID3.Comment
 end;  end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Infor(Edit1.Text);
 Label1.Caption:='Артист:'+ Artist;
 end;
 
 end.
 
 
 Думаю ты поймеш. При вызове Infor(Edit1.Text); он из Edit берет путь до мп3 и узнает теги, и вносит данные в Title,Artist,Album,Year,Genre,Comment
 
 Все вроде расписал)
 |  
|   | Subsonic (статус: Посетитель), 26 июля 2009, 03:40 [#3]:Спасибо. Пробую, смотрю. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |