getID3类的学习使用
2024-09-01 09:27:40
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;
}
}
最新文章
- 【半平面交】bzoj1038 [ZJOI2008]瞭望塔
- 初识zookeeper(一)之zookeeper的安装及配置
- JBPM4.4+SSH 整合配置及完整实例
- H264(NAL简介与I帧判断)
- 161021、spring异步调用,完美解决!
- [转] Android资源管理框架(Asset Manager)简要介绍和学习计划
- App Store--心酸的上线路,说说那些不可思议的被拒理由
- C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭
- C++学习46 getline()函数读入一行字符 一些与输入有关的istream类成员函数
- WPF解析Word为图片
- Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)
- underscorejs-sample学习
- Access Violation at address 00000000.Read of address 00000000 解决办法
- Java之IO流学习总结【下】
- Java经典编程题50道之二十二
- Hadoop记录-HDFS balancer配置
- 『TensorFlow』梯度优化相关
- win10: This file can't be opened
- SSH整合 第四篇 Spring的IoC和AOP
- POJ2234:Matches Game(Nim博弈)
热门文章
- 字节跳动后端开发实习生面试(Python)
- mysqlfailover高可用与proxysql读写分离配置
- 库函数的使用:POJ1488-TEX Quotes(getline()的使用)
- selenium2等待元素加载
- Hadoop4.2HDFS测试报告之五
- c#中利用“|”运算组合多项
- POJ 3241 曼哈顿距离最小生成树 Object Clustering
- socketserver源码剖析
- 如何解决border的重叠问题
- 融合RocksDB, Pregel, Foxx &; Satellite Collections 怎样使数据库性能提升35%?