Форум по 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,551
Версия 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
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
type 
  TID3Tag = record 
    ID: string[3]; 
    Titel: string[30]; 
    Artist: string[30]; 
    Album: string[30]; 
    Year: string[4]; 
    Comment: string[30]; 
    Genre: Byte
  end;
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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');
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Чтение твоего 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, время: 17:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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