Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Работа с 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 вся ветка

Форум: "Media";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.033 c
1-1092745697
GRAND25
2004-08-17 16:28
2004.09.05
Электронная идентификация пользователя


1-1092818353
YurikGL
2004-08-18 12:39
2004.09.05
Передать TTReeNode


1-1092771422
MaxN
2004-08-17 23:37
2004.09.05
Печать


8-1087242022
DimDim
2004-06-14 23:40
2004.09.05
TRxGIFAnimator и проблемы с ним


3-1092029381
Fynjy
2004-08-09 09:29
2004.09.05
ADOCommand





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский