PHP getID3类的使用方法学习笔记【附getID3源码下载】


Posted in PHP onOctober 18, 2019

本文实例讲述了PHP getID3类的使用方法。分享给大家供大家参考,具体如下:

网上描述:

getID3()这个PHP脚本能够从MP3或其它媒体文件中提取有用的信息如:ID3标签,bitrate,播放时间等。

(格式包括:Ogg,WMA,WMV,ASF,WAV,AVI,AAC,VQF,FLAC,MusePack,Real,QuickTime,Monkey's Audio,MIDI等)。

官方网址:https://www.getid3.org/。

功能:

使用这个方法,可以获得音频、视频、图片等媒体文件中的信息,

我测了一下常见类型的媒体文件,测试结果如下:

使用的getID3的版本是:1.9.16-201810171314。

支持的类型:

音频:【mp3】、【amr】;
视频:【mp4】、【flv】、【wmv】、【avi】;
图片:【gif】、【png】、【jpg】。

不支持的类型:

视频格式【ts】。

示例:

使用背景:做聊天功能时,发送语音时,需要知道语音的时长,这个时候就可以使用getID3这个类。

开发环境:ThinkPHP3.2框架。

下载getID3类:在官网下载后解压,里边有许多文件,很多都是demo,只需要将getid3目录放到项目里,

我把目录放到ThinkPHP\Library\Vender下。

调用示例代码:

Vendor('getid3.getid3');
$getID3 = new \getID3();
$analyzeFileInfo = $getID3->analyze($filename);
if($analyzeFileInfo && is_array($analyzeFileInfo)){
   if(isset($analyzeFileInfo['error']) && $analyzeFileInfo['error']){
        $err_msg = '获取语音消息的时长失败';
          if(is_array($analyzeFileInfo['error'])){
            foreach ($analyzeFileInfo['error'] as $key=>$value) {
              $err_msg .= ',错误'. ($key+1) . ':'.$value;
            }
          }else{
            $err_msg .= ',错误:'.$analyzeFileInfo['error'];
          }
          log($err_msg);
          return false;
        }else{
          if(isset($analyzeFileInfo['playtime_seconds'])){
            return ceil($analyzeFileInfo['playtime_seconds']);
          }
          return false;
        }
      }else{
        log('解析语音文件失败:'.$analyzeFileInfo);
        return false;
      }
    }

附:getID3类源码点击此处本站下载

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
php通过header发送自定义数据方法
Jan 18 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 #PHP
tp5.1 实现setInc字段自动加1
Oct 18 #PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 #PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 #PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 #PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 #PHP
基于laravel belongsTo使用详解
Oct 18 #PHP
You might like
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
JavaScript简介
2015/02/15 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python实现按行切分文本文件的方法
2016/04/18 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python实现电子书翻页小程序
2019/07/23 Python
appium+python adb常用命令分享
2020/03/06 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
幼儿园教育教学反思
2014/01/31 职场文书
民族团结先进个人材料
2014/02/05 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
代办委托书怎样写
2014/04/08 职场文书
安全施工责任书
2014/08/25 职场文书
清洁工个人总结
2015/03/04 职场文书