我怎样才能得到bitrate
一个 MP3 文件?
问问题
3811 次
3 回答
5
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.
请注意,这只找到第一帧的比特率。
您可以从这里找到更详细的信息
于 2011-04-23T01:06:47.397 回答
4
看看Read MP3 infoTAudioFile.GetMp3Info
(忽略德语描述)
于 2011-04-23T07:23:49.093 回答
3
您必须创建一个 Delphi 结构来读取 MP3 文件格式。
该格式在此处定义:
http://en.wikipedia.org/wiki/MP3#File_structure
此链接:http ://www.3delite.hu/Object%20Pascal%20Developer%20Resources/id3v2library.html
似乎也包含用于读取格式的 Delphi 代码。
更简单地说,每个文件都有一种格式,通常您需要创建一个数据结构来映射该格式。然后,您使用文件读取代码将文件中的数据映射到定义文件格式的结构之上。
于 2011-04-23T00:41:43.727 回答