如何从我自己的网站获取MP3的长度?

时间:2013-07-13 20:14:12

标签: php javascript mysql mp3

我有自己的个人网站,我上传了大约5000个mp3。我真正想做的就是能够查看mp3文件位置并获取文件Track Length,最好是在几秒钟内,但此时一切都会很好。我只是在寻找一些简单,干净和有效的东西来获得这一条信息。我环顾四周,我发现的所有信息都会提取各种信息,但我找不到能满足我需求的东西。如果你们中的任何人知道任何有用的信息,请告诉我们!

顺便说一句,我只是一个业余爱好者,但我有一些PHP,MySQL和Javascript的经验。我希望它是这些语言之一,但如果它很简单,它可以是几乎任何语言,我会弄清楚。

谢谢!

2 个答案:

答案 0 :(得分: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

希望这有帮助!

答案 1 :(得分:1)

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