Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ActiveX про MP3, надо информацию из тегов 
:(
    Опции темы
tishaishii
Дата 8.4.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Надо информацию из тегов MP3.
Explorer показывает эту инфу, значит, в виндовс есть уже встроенный механизм.
Надо активыкс.
PM MAIL ICQ Skype   Вверх
Letov
Дата 25.4.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



С помощью программы на 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; 




--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Exception
Дата 25.4.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 6
Всего: 186



Тебе контрол или библиотека нужна?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.