-3

我有自己的个人网站,上传了大约 5000 首 mp3。我真正想做的就是能够查看 mp3 文件的位置并获得文件的轨道长度,最好是几秒钟,但此时任何事情都会很好。我只是在寻找一些简单、干净和有效的东西来获取那一条信息。我环顾四周,发现的所有信息都包含各种信息,但我一直无法找到符合我要求的东西。如果你们中的任何人知道任何可以帮助的事情,请告诉我!

顺便说一句,我只是一个业余爱好者,但我对 PHP、MySQL 和 Javascript 有一些经验。我希望它使用其中一种语言,但如果它足够简单,它几乎可以使用任何语言,我会弄清楚的。

谢谢!

4

2 回答 2

4

这是一个函数:

代码:

<?php
$f = 'somefile.mp3';
$m = new mp3file($f);
$a = $m->get_metadata();

if ($a['Encoding']=='Unknown')
    echo "?";
else if ($a['Encoding']=='VBR')
    print_r($a);
else if ($a['Encoding']=='CBR')
    print_r($a);
unset($a);
?>

样本输出:

Array
(
    [Filesize] => 5108648
    [Encoding] => CBR
    [MPEG version] => 11
    [Layer Description] => 01
    [Protection Bit] => 1
    [Bitrate Index] => 1010
    [Sampling Freq Idx] => 00
    [Padding Bit] => 0
    [Private Bit] => 0
    [Channel Mode] => 01
    [Mode Extension] => 00
    [Copyright] => 0
    [Original Media] => 0
    [Emphasis] => 0
    [Bitrate] => 160
    [Sampling Rate] => 44100
    [Frame Size] => 523
    [Length] => 252
    [Length mm:ss] => 4:12
)

注意[Length mm:ss] => 4:12部分。

另一种解决方案是使用外部工具,例如ffmpegmp3info与内置函数一起使用shell_exec()

资料来源: http ://www.zedwood.com/article/127/php-calculate-duration-of-mp3

希望这可以帮助!

于 2013-07-13T20:17:18.833 回答
1

你检查过这个: http: //www.binarytides.com/get-play-time-bitrate-mp3-php/ 另外,如果你知道 mp3 文件的比特率,你可以简单地通过获取 mp3 的文件大小来计算它文件,将其转换为位(或千位),然后将大小除以比特率。这将为您提供以秒为单位的时间。

于 2013-07-13T20:23:51.213 回答