【问题标题】:Get length of mp3 file获取mp3文件的长度
【发布时间】: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!

标签: php audio mp3


【解决方案1】:

【讨论】:

  • 更新了我尝试实现您建议的代码的问题
  • 您必须下载并包含mp3file.class.php。阅读我建议的页面以结束请:P
  • 嘿,它对你有用吗?我尝试了 mp3file.class.php 的事情,不知何故,我得到的持续时间不准确。现在我想我应该只计算帧数并将它们乘以 0.026 秒
  • 非常感谢。你节省了我很多时间。
猜你喜欢
  • 2013-09-07
  • 1970-01-01
  • 2011-08-27
  • 2010-09-12
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多