Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Работа с mp3 форматом   Найти похожие ветки 

 
hiperLogun ©   (2004-04-25 01:09) [0]

Необходимо написать небольшую программку, котрая будет резать mp3 файлы, точнее создавать как-бы preview-версии mp3-шек с заданной длительностью. Еще важный фактор - все mp3 с переменным битрэйтом (VBR).
Подскажите пожалуйста, как мне обрабатывать mp3, каков формат этих файлов, как правильно с ними работать!
Я был бы очень признателен, если бы мне ответили на e-mail:hiperlogun@mail.ru. Может кто знает ссылки, где можно найти информайию про формат mp3, пожалуйста поделитесь!
Заранее брагодарен!


 
hiperLogun ©   (2004-04-25 14:41) [1]

Мастера!!! Ну помогите мне пожалуйста!


 
Yanis ©   (2004-04-25 16:09) [2]

Чтение MP3 ID3-Tag

{  
 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;  

К сожалению больше по mp3 ничего нету. Если что будет кину в форум.


 
hiperLogun ©   (2004-04-25 16:17) [3]

Спасибо конечно! Не это далеко не то!


 
Yanis ©   (2004-04-25 16:19) [4]

Вот ещё:
http://actualsoft.narod.ru/files/audioinf.rar


 
Yanis ©   (2004-04-25 16:29) [5]

А что ТО?


 
uny   (2004-04-25 17:10) [6]

музыку хочет портить, что бы люди качали и злились


 
hiperLogun ©   (2004-04-25 18:54) [7]

Нет дорогие товарищи!
Мне нужно создать preview-базу для боольшого количества музыки, чтобы уместилось на один винт (а то вся база на 4-х винтах). Так ей легче пользоваться!
[Мне всетаки надо узнать как можно програмно без переконверчивания копировать начало песни из mp3 (около минуты) и создавать другой mp3(это начало)]


 
uny   (2004-04-25 19:41) [8]

могу ошибаться, но бывает повреждённый mp3, скажем половина первая только, а всеравно играет - можно попробовать


 
hiperLogun ©   (2004-04-26 00:12) [9]

Да но чаще всего получается такая бяяяя...ка.
Появляются всякие шумы и другая ерунда такчто надо искать дальше. Время то идёт, а мне прогу позарез да мая зделать надо!


 
wicked ©   (2004-04-26 11:43) [10]

достаточно информации здесь - http://www.dv.co.yu/mpgscript/mpeghdr.htm ....
тока по английски...


 
hiperLogun ©   (2004-04-27 01:01) [11]

Спасибо всем! Вопрос закрыт!
Uni был прав: можно отрезать кусок (резал в тоталкомандере) о вроде все путём играет!
Только вот вопрос есть:

Как мне из мп3 прочитать допустим 1мб и сохранить его в другой файл? Чегото не как не сооброжу как зделать! Помогите мне пожалуйста!


 
ПсихЪ   (2004-06-15 11:38) [12]

Открываем файл 1 на чтение и файл 2 на запись, создаём буффер равный, скажем 1/100 метра, применяем на открытый файл 1 BlockRead 100 раз, а полученные в буффер байты каждый раз записываем в открытый файл 2 (BlockWrite). Закрываем файлы 1 и 2. Всё!



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

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
3-1092117678
RoadStar
2004-08-10 10:01
2004.09.05
Разность двух запросов


1-1093189122
SergP
2004-08-22 19:38
2004.09.05
Проблема с формулами в Excel


8-1087825843
ИМХО
2004-06-21 17:50
2004.09.05
Собрать AVI файл из BMP-шек


1-1093032545
Саша
2004-08-21 00:09
2004.09.05
mp3 в Delphi


4-1090268158
John
2004-07-20 00:15
2004.09.05
Стиль WinXp