Как получить битрейт файла MP3? (Дельфи)
Как я могу получить bitrate
MP3-файла ?
3 ответов
посмотреть TAudioFile.GetMp3Info
на читать MP3 info (просто игнорируйте немецкое описание)
битрейт MP3 хранится в 3-м байте заголовка кадра, поэтому можно было бы искать первый байт со значением 255 (теоретически не должно быть других байтов со всеми битами, установленными на 1 до этого), а битрейт должен храниться два байта после этого. Выполняет следующий код:
program Project1;
{$APPTYPE CONSOLE}
uses
Classes, SysUtils;
const
BIT_RATE_TABLE: array [0..15] of Integer =
(0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0);
var
B: Byte;
begin
with TFileStream.Create(ParamStr(1), fmOpenRead) do begin
try
Position := 0;
repeat
Read(B, 1);
until B = 255;
Position := Position + 1;
Read(B, 1);
Writeln(BIT_RATE_TABLE[B shr 4]);
finally
Free;
end;
end;
end.
обратите внимание, что это только находит битрейт первого кадра.
вы можете найти более подробную информацию здесь
вам нужно будет создать структуру Delphi для чтения формата MP3-файла.
этот формат определен здесь:
http://en.wikipedia.org/wiki/MP3#File_structure
эта ссылка: http://www.3delite.hu/Object%20Pascal%20Developer%20Resources/id3v2library.html
похоже, содержит код Delphi для чтения формата.
в основном, каждый файл имеет формат, и, как правило, вам нужно создайте структуру данных для сопоставления этого формата. Затем вы используете код чтения файла для сопоставления данных в файле поверх структуры, определяющей формат файла.