【发布时间】:2014-03-02 19:20:23
【问题描述】:
用户上传 mp3 文件,我需要获取它们的长度。在 PHP 中做到这一点最省力的方法是什么?我所说的最省力是指任何方式都需要最少的代码和尽可能少的非原生 PHP 函数。
我尝试实现以下答案中建议的代码:
<?PHP
$f = 'numbers/4.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);
?>
但是我收到了这个错误:
Fatal error: Class 'mp3file' not found in /home/a1865444/public_html/save-audio.php on line 3
我该如何解决这个问题?
【问题讨论】:
-
你的意思是播放长度?因为
filesize()为您提供字节长度。如果它们是 VBR mp3,则计算播放时间的唯一方法是扫描整个文件并计算存在多少 mp3 帧。 -
是的,我的意思是播放长度。我如何计算帧数?
-
将您在该页面上看到的课程代码保存在代码之前的
mp3file.php和include 'mp3file.php'中。 说真的?! 这就是当一个对 PHP 毫无头绪的人在没有任何基本知识的情况下跳入深渊时会得到的。首先阅读 PHP 书籍。它由页面组成并教你一些东西。如果你不知道为什么会出现错误,你需要一本书。 -
扫描文件并检测帧。它们具有特定的位模式。假设文件的 PURE mp3 数据而不是 mp3-in-mpeg-video 或其他任何内容,一旦您找到第一帧,找到其余的只是计算帧大小并向前跳转那么多字节的问题。
-
感谢所有有用的 cmets!