Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Delphi
Перезагрузить страницу Проблема с ID3 тегами как исправить
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
srvr4vr
Guest
 
Сообщений: n/a
По умолчанию Проблема с ID3 тегами как исправить - 23.11.2008, 14:49

Код:
type
 TID3Tag = record
  Title: string[90];
  Name: string[30];
  Artist: string[30];
  Album: string[30];
  Genre: string[40];
end;
 function readID3Tag(FileName: string): TID3Tag;
  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
  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
      Name    := Copy(Buffer, 4, 30);
      Artist  := Copy(Buffer, 34, 30);
      Album   := Copy(Buffer, 64, 30);
      Genre   := Genres[Ord(Buffer[128])];
      Title   := Artist +'-'+Name;
    end;
  finally
    FS.Free;
  end;
 end;
на выходе в большинстве случаев получаю полную тарабанщину. устал бороться =( есть какой-нибудь более гибкий и универсальный способ?
Ответить с цитированием
  (#2 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 24.11.2008, 10:21

Цитата:
на выходе в большинстве случаев получаю полную тарабанщину
Особенно, когда в файле вообще никаких тегов нет
Ответить с цитированием
  (#3 (permalink)) Старый
programer4ever programer4ever вне форума
Member
 
Сообщений: 326
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2006
По умолчанию 24.11.2008, 14:51

Проверяй первые три байта буфера - если они равны 'TAG', то тег есть, если там чёт другое - значит ID3v1 тега нет в этом файле
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с PHP как исправить ошибки Оксана1990 Вопросы начинающих программистов 8 02.06.2011 19:33
Проблема с классом как исправить ошибки QP88 С/С++ 1 29.12.2010 15:45
Проблема с видеокартой и монитором, как исправить? wr4th1991 Любые вопросы от новичков 8 20.09.2010 15:14
Проблема с графикой в C++ как исправить ошибки Logan2405 С/С++ 3 24.09.2009 11:33
TWebbrowser работа с тегами Wood Delphi 2 09.09.2008 04:16
Как работать с тегами в Delphi Виталик 1 Delphi 2 02.04.2008 13:54
Проблема с mozillой как исправить ошибки на сайте Александр Рябов DHTML, JavaScript, VBScript 2 17.10.2006 17:32
Проблема с MouseMove как исправить ошибку ALLex Delphi 7 14.03.2006 01:49
Как найти отличая между тегами miha89 DHTML, JavaScript, VBScript 3 14.02.2006 16:40
Как можно работать с тегами файлов mp3 Azure Delphi 2 24.09.2005 10:49
Проблема со свойством как исправить Ikshot .NET 0 14.08.2004 03:48
Проблема с MoveToEx-LineTo как исправить bug WinAPI 6 17.05.2004 12:11



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов