如何获取MP3文件的比特率? (德尔福)

发布于 2024-11-03 07:49:57 字数 36 浏览 4 评论 0原文

如何获取 MP3 文件的比特率

how can i get bitrate of a MP3 File ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

汹涌人海 2024-11-10 07:49:57

MP3 比特率存储在帧头的第三个字节中,因此一个选项是搜索值为 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.

请注意,这仅查找第一帧的比特率。

您可以从此处找到更多详细信息

MP3 Bitrate is stored in the 3rd byte of frame header so an option would be to search for the first byte with a value 255 (in theory there's should be no other bytes with all bits set to 1 before that) and bitrate should be stored two bytes after that. Following code does this:

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.

Note that this only finds bitrate of the first frame.

You can find more detailed info from here

最好是你 2024-11-10 07:49:57

Have a look at TAudioFile.GetMp3Info in Read MP3 info (just ignore the german description)

终止放荡 2024-11-10 07:49:57

您必须创建一个 Delphi 结构来读取 MP3 文件格式。

该格式在这里定义:

http://en.wikipedia.org/wiki/MP3#File_struct

此链接:http://www.3delite.hu/Object%20Pascal%20Developer%20Resources/id3v2library.html

似乎也包含用于读取格式的 Delphi 代码。

更基本的是,每个文件都有一种格式,通常您需要创建一个数据结构来映射该格式。然后,您使用文件读取代码将文件中的数据映射到定义文件格式的结构之上。

You'll have to create a Delphi structure to read the MP3 file format.

That format is defined here:

http://en.wikipedia.org/wiki/MP3#File_structure

This link: http://www.3delite.hu/Object%20Pascal%20Developer%20Resources/id3v2library.html

appears to contain Delphi code for reading the format as well.

More basically, every file has a format, and generally you need to create a data structure to map that format. You then use file reading code to map the data in the file on top of structure that defines the file format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文