Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Чтение tag ов в mp3   Найти похожие ветки 

 
Rus   (2003-05-20 14:35) [0]

Помогите. Если есть исходники дайте ссылку.


 
Song   (2003-05-20 19:33) [1]

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;
( Genre >= 0)
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;




Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.127 c
1-58719
Yuraz
2003-09-02 09:01
2003.09.18
Помогите доработать код, ввод Edit только цифр+запятая+backsp


1-58764
Тих
2003-09-05 22:01
2003.09.18
Возвращение памяти в 95/98


14-58902
MBo
2003-08-29 08:42
2003.09.18
Intel Processor Code Table


3-58512
firewal1
2003-08-29 08:16
2003.09.18
как с помощью SQL операторов записать двоичные данные в BLOB


7-58951
Сергей Князев
2003-07-04 13:40
2003.09.18
Как добавить свое сообщение в Журнал событий WinNt (WinXP)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский