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;
}
}

最新文章

  1. 【半平面交】bzoj1038 [ZJOI2008]瞭望塔
  2. 初识zookeeper(一)之zookeeper的安装及配置
  3. JBPM4.4+SSH 整合配置及完整实例
  4. H264(NAL简介与I帧判断)
  5. 161021、spring异步调用,完美解决!
  6. [转] Android资源管理框架(Asset Manager)简要介绍和学习计划
  7. App Store--心酸的上线路,说说那些不可思议的被拒理由
  8. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭
  9. C++学习46 getline()函数读入一行字符 一些与输入有关的istream类成员函数
  10. WPF解析Word为图片
  11. Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)
  12. underscorejs-sample学习
  13. Access Violation at address 00000000.Read of address 00000000 解决办法
  14. Java之IO流学习总结【下】
  15. Java经典编程题50道之二十二
  16. Hadoop记录-HDFS balancer配置
  17. 『TensorFlow』梯度优化相关
  18. win10: This file can't be opened
  19. SSH整合 第四篇 Spring的IoC和AOP
  20. POJ2234:Matches Game(Nim博弈)

热门文章

  1. 字节跳动后端开发实习生面试(Python)
  2. mysqlfailover高可用与proxysql读写分离配置
  3. 库函数的使用:POJ1488-TEX Quotes(getline()的使用)
  4. selenium2等待元素加载
  5. Hadoop4.2HDFS测试报告之五
  6. c#中利用“|”运算组合多项
  7. POJ 3241 曼哈顿距离最小生成树 Object Clustering
  8. socketserver源码剖析
  9. 如何解决border的重叠问题
  10. 融合RocksDB, Pregel, Foxx & Satellite Collections 怎样使数据库性能提升35%?