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