欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

PHP编程获取音频文件时长的方法【基于getid3类】有大用

本文实例讲述了PHP编程获取音频文件时长的方法。分享给大家供大家参考,具体如下:

问题:

昨天在新增论坛功能的时候,移动端显示音频文件需要知道是多长的音频;

具体解决方案如下:

首先就是数据库中增加保存音频文件时长的字段;

然后我在网上找到了getID3这个类可以获取到音频文件的时长,将其引入到项目中去;

其次在移动端上传音频文件的接口中,调用该类,具体写法如下:
下面的方法 可能会报错 解决办法 使用最新版本 到 http://www.getid3.org/ 下载

1
2
3
$getID3 = new getID3();  //实例化类
$ThisFileInfo = $getID3->analyze($path); //分析文件,$path为音频文件的地址
$fileduration=$ThisFileInfo['playtime_seconds']; //这个获得的便是音频文件的时长

并将相应数据存入到数据库中;

然后在移动端需要数据列表的时候将音频时长同时返回过去就行

附:getID3点击此处本站下载

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

来自 http://www.jb51.net/article/111640.htm
 

thinkphp5.0之获取一个音频文件的播放时长

 第三方接口   227浏览  0评论

需求:用户发布文章需要在后台上传一段音频文件,我们要使用php程序获取这段音频文件的播放时长,存放于数据库!解析来我们来看具体的实现方法。

一、下载gitid3这个类库文件(gitId3官网地址:http://www.getid3.org/

image.png

将getid3文件放在thinkphp的extend文件夹

二、编写上传方法

/**
 * @return string
 * @throws Exception
 * File Upload
 */
function upload(){
    $file = request()->file("image");
    //这一步是为了防止php配置文件上传大小限制导致file为nullde 情况
    if(!empty($_FILES) && empty($file)){
        throw new \LogicException('上传文件大小超过配置',10020);
    }
    $info = $file->validate(['size'=>15567998,'ext'=>'jpg,png,gif,jpeg,mp3,wma,wav,ogg,ape,acc'])->move(ROOT_PATH . 'public' . DS . 'uploads');
    if(!$info){
        throw new \Exception($file->getError(),\think\Config::get('error_table.upload')['code']);
    }
    $file_path = $info->getSaveName();
    $extend = $info->getExtension();
    //如果是音频类型的文件我们将调用gitid3类来获取音频播放时长
    if($extend == 'mp3' || $extend == 'wma' ||  $extend == 'wav' || $extend == 'ogg' || $extend == 'ape' || $extend == 'acc'){
        \think\Loader::import('MP3\getid3');//引入get3文件
        $getId3 = new \getID3();
        //打开上面我们上传的文件
        $file_info = $getId3->analyze(ROOT_PATH.'public'.DS.'/uploads/'.$file_path);
        $audio_size = $file_info['playtime_seconds']; //Calculate the duration of the audio
        return [
            'file_path'=>$file_path,
            'audio_size'=>$audio_size //这个就是音频播放时长单位秒
        ];
    }else{
        return [
            'image_path'=>$file_path,
        ];
    }
}

三、调用uplod方法

$upload_info = upload();

四、前端

<form class="form form-horizontal" id="form-rule-add" method="post" action="" enctype="multipart/form-data">
  
   <div class="row cl">
      <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>音频文件:</label>
      <div class="formControls col-xs-8 col-sm-9"> <span class="btn-upload form-group">
            <input class="input-text upload-url" type="text"  id="uploadfile" readonly nullmsg="请上传音频文件!" style="width:200px">
            <a href="javascript:void();" class="btn btn-primary radius upload-btn"><i class="Hui-iconfont">&#xe642;</i> 浏览文件</a>
            <input type="file" name="image"  class="input-file">
         </span> </div>
   </div>

   <?php if(!empty($one['file_path'])){?>
   <div class="row cl">
      <label class="form-label col-xs-4 col-sm-3">原来音频:</label>
      <div class="formControls col-xs-8 col-sm-9">
         <audio src="<?php echo '/uploads/'.$one['file_path']?>" controls="controls">
            您的浏览器不支持音频播放,请切换IE9已上的浏览器.
         </audio>
      </div>
   </div>
   <?php } ?>
   <div class="row cl">
      <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
         <input type="hidden" name="id" value="<?php echo $one['id']?>">
         <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
      </div>
   </div>
</form>

 

本文连接:http://www.phpbloger.com/article/33 文章都为原创,转载请注明出处!

来自 http://www.phpbloger.com/article/33

普通分类: