Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.11.2007, 14:01
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию Тэги mp3, WAV файлов?

Хочу сделать свой сканер mp3 i wav, но как оттуда тэги цеплять не представляю, прога находит успешно эти файлы но теперь уперся в то как выдернуть оттуда битрейт, название композиции, стерео, моно, название альбома и так далее, короче все тэги которые в нем есть.

Поиск по форуму гичего не дал или не так искал.
По инету тоже ниче толкового за 20 минут не нашел или все кривое напроч.
Ответить с цитированием
  #2  
Старый 04.11.2007, 14:09
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Delphinic
Хочу сделать свой сканер mp3 i wav, но как оттуда тэги цеплять не представляю, прога находит успешно эти файлы но теперь уперся в то как выдернуть оттуда битрейт, название композиции, стерео, моно, название альбома и так далее, короче все тэги которые в нем есть.

Поиск по форуму гичего не дал или не так искал.
По инету тоже ниче толкового за 20 минут не нашел или все кривое напроч.
Тут не пробовал искать? http://www.delphisources.ru/pages/faq/multimedia.html
Ответить с цитированием
  #3  
Старый 04.11.2007, 14:14
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию

Тут не пробовал, забыл совсем. Спасиб.
Ответить с цитированием
  #4  
Старый 04.11.2007, 16:12
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Код:
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; 
Надеюсь на твой отзыв.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #5  
Старый 04.11.2007, 16:29
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию

Отлично!! То что надо!! Просто и легко. Я сразу разобрался. Только разберусь где находится еще инфа разная, сам принцип главное понят.
Спасибо всем кто помог! Еще занятие есть на пару деньков теперь.
Ответить с цитированием
  #6  
Старый 10.11.2007, 03:03
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

А у меня такой вопрос про теги:
Как найти ID3v2 Tag?
Ответить с цитированием
  #7  
Старый 10.11.2007, 07:04
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Код:
//Чтение твоего ID3v2 тега
function ReadID3v2Tag(const FName: string; var Tag: TCustomTag): boolean; 
var 
TI: TID3v2Info; 
s: array[1..ID3V2_FRAME_COUNT] of string; 
i: integer; 
begin 
FillChar(Tag, SizeOf(Tag), #0); // очищаем структуру 
Result := ReadID3v2Header(FName, TI); // читаем заголовок 
if (Result) and (TI.ID = ′ID3′) then // тег? 
begin 
ReadID3v2Frames(FName, TI); // читаем фреймы 
for i := 1 to ID3V2_FRAME_COUNT do // убираем лишние нули 
s := TrimRight(TI.Frame); // в конце строк 
Move(s[1][1], Tag.Title[1], Length(s[1])); // копируем в Tag 
Move(s[2][1], Tag.Artist[1], Length(s[2])); 
Move(s[3][1], Tag.Album[1], Length(s[3])); 
Tag.Track := GetTrack(s[4]); // получаем дорожку 
Move(s[5][1], Tag.Year[1], Length(s[5])); 
Tag.Genre := GenreIndex(GetGenre(s[6])); // жанр 
s[7] := Trim(Copy(s[7], 5, Length(s[7]) - 4)); 
Move(s[7][1], Tag.Comment[1], Length(s[7])); 
end; 
end; 
__________________
Программирование - это искусство и наш смысл жизни.

Последний раз редактировалось moo2k, 10.11.2007 в 07:06.
Ответить с цитированием
  #8  
Старый 06.01.2008, 18:59
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

TCustomTag и TID3v2Info-Компонент то какой?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter