wapmorgan/mp3info

提取 mp3 标签和元信息的最快 PHP 库。

0.1.0 2023-05-28 18:37 UTC

This package is auto-updated.

Last update: 2024-08-30 01:20:08 UTC


README

获取 mp3 标签和元信息的最快 PHP 库。

Latest Stable Version Total Downloads Latest Unstable Version License

该类可以从 mpeg/mp3 音频中提取信息

  • 音频信息
    • 时长
    • 比特率
    • 采样率
    • 通道模式
    • 编解码器和层版本
    • 帧数
  • 音频图像(封面)
  • 音频标签

内容

  1. 用法
  2. 性能
  3. 控制台扫描器
  4. API
    • 音频信息
    • 类方法
    • 设置
  5. 技术信息

用法

在创建 Mp3Info 实例后,将文件名作为构造函数的第一个参数传递,您可以从以下列出的对象属性中检索数据。

use wapmorgan\Mp3Info\Mp3Info;
// To get basic audio information
$audio = new Mp3Info('./audio.mp3');

// If you need parse tags, you should set 2nd argument this way:
$audio = new Mp3Info('./audio.mp3', true);

然后访问对象属性以获取音频信息

echo 'Audio duration: '.floor($audio->duration / 60).' min '.floor($audio->duration % 60).' sec'.PHP_EOL;
echo 'Audio bitrate: '.($audio->bitRate / 1000).' kb/s'.PHP_EOL;
// and so on ...

要访问 id3v1 标签,请使用 $tags1 属性。要访问 id3v2 标签,请使用 $tags2 属性。此外,您还可以使用标签的合并列表 $tags,其中 id3v2 和 id3v1 标签与 id3v1 键合并。

// simple id3v1 tags
echo 'Song '.$audio->tags1['song'].' from '.$audio->tags1['artist'].PHP_EOL;
// specific id3v2 tags
echo 'Song '.$audio->tags2['TIT2'].' from '.$audio->tags2['TPE1'].PHP_EOL;

// combined tags (simplies way to get as more information as possible)
echo 'Song '.$audio->tags['song'].' from '.$audio->tags['artist'].PHP_EOL;

性能

  • 通常它可以在不到 0.001 秒的时间内解析大约 6-7 MB 大小的 mp3 文件。
  • 112 个文件列表,具有恒定和可变比特率,总时长为 5:22:28,在 1.76 秒内解析。与完全相同的 mp3 列表相比,getId3 库的速度慢 8x-10x - 9.9 秒。
  • 如果您想比较,有一个非常简单的方法。只需安装 nass600/get-id3 包,并针对包含音频的任何文件夹运行控制台扫描器。它将打印出 Mp3Info 花费的时间和 getId3。

控制台扫描器

要测试 Mp3Info,您可以使用内置的脚本来扫描目录并分析其中的所有 mp3 文件。要针对当前目录运行脚本

php bin/scan ./

API

音频信息

类方法

  • $audio = new Mp3Info($filename, $parseTags = false) 创建新的对象实例并开始解析。如果您需要解析音频标签(id3v1 和 id3v2),请将 true 作为第二个参数传递。

  • $audio->getCover() 返回与音频图像捆绑的原始内容。

  • Mp3Info::isValidAudio($filename) 是一个静态方法,用于检查 $filename 文件是否看起来像 mp3 文件。如果文件看起来像 mp3,则返回 true,否则返回 false

设置

您可以在实例化对象之前调整一些变量以重新配置

  • Mp3Info::$headerSeekLimit - 搜索第一个 mpeg 头的字节数。默认值:2048(字节)。
  • Mp3Info::$framesCountRead - 在计算音频时长之前要读取的 mpeg 帧数。默认值:2(帧)。

技术信息

支持的功能

  • id3v1
  • id3v2.3.0, id3v2.4.0
  • CBR,可变比特率(VBR)

使用的源