<kbd id='woaibaidu'></kbd><address id='woaibaidu'><style id='woaibaidu'></style></address><button id='woaibaidu'></button>

          当前位置:主页 > 网络编程 > PHP编程 >
            PHP微信开发之微信录音临时转永久存储
            2018-01-29 22:04 发布 次浏览

          最近做开发的时分遇到了这个成绩,甲方希望用户在微信真个录音可以不断无效。就是随时翻开挚友的分享就可以听到挚友的录音。可在微信官方开发手册上查到微信录音文件上传后只能在微信端保存3地利间,3天后就生效了。怎样办呢?

          1、经过挪用微信媒体资源下载接口将微信录音下载到当地

          @params
          String access_token 微信大众号access_token
          String serverId 经过录音上传接口获得到的serverId
          http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$serverId}

          2、从微信方下载到当地的录音文件花样是amr,而微信网页阅读器其实不支持amr文件的音频文件播放。所以我们需求将amr 转换成
          网页可以辨认的mp3花样。

          怎样转换呢?我找到了1个平台可以支持这类转换,7牛云存储平台.经过7牛云存储我们可以将amr转换成mp3

          require("./extension/autoload.php");//官方开发包 可在官方下载 php版本 载入其中的autoload.php extension 是随便 起的名字
          
          /**
           * @param
           * String $filepa 当地amr文件途径
           * @return
           * String 剖析后存储在7牛存储空间中的mp3近程地址
           */
          function upchange($filepa){
            $accessKey="7牛accessKey 在7牛后台获得";
            $secretKey="7牛secretKey 在7牛后台获得";
            $httpUrl ="7牛分配的拜访地址 在7牛后台获得";
            $bucket = "存储空间工具bucket 在7牛后台创立";
            //转码时运用的行列称号
            $pipeline = '转码行列称号 在7牛后台创立';
            $auth = new \Qiniu\Auth($accessKey, $secretKey);
            $rand_name = getRandChar__(6).time().'.mp3';
            //要停止转码的转码操作
            $fops = "avthumb/mp3/ab/64k/ar/22050";
            //$fops = "mp3";
            //可以对转码后的文件停止运用saveas参数自界说命名,固然也能够不指定文件会默许命名并保管在当间
            $savekey = Qiniu\base64_urlSafeEncode('kepei:'.$rand_name);
            $fops = $fops.'|saveas/'.$savekey;
          
            $policy = array(
              'persistentOps'   => $fops,
              'persistentNotifyUrl' => 'http://',
            );
            $uptoken = $auth->uploadToken($bucket, null, 3600, $policy);
          
            //上传文件的当地途径
            $filePath = $filepa;
            $key = $rand_name;
            //$key = '';
            $uploadMgr = new \Qiniu\Storage\UploadManager(); 
            list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);
          
            if ($err !== null) {
              return false;
            } else {
              return $httpUrl.$rand_name;
            }
          }
          
          function getRandChar__($length){
            $str = null;
            $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
            $max = strlen($strPol)⑴;
            for($i=0;$i<$length;$i++){
              $str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max两个数之间的1个随机整数
            }
            return $str;
          }
          
          $amrToMp3 = upchange('当地amr文件途径');
          //mp3 在7牛上的拜访地址
          var_dump($amrToMp3);
          /**
           * 假如你希望将这个mp3 存储在当地而不是在7牛上,那末你需求在顺序上等候几秒,由于这时候7牛在转换改amr的花样
           */
           sleep(10);
          $res = curlHttp($amrToMp3);    //curlHttp 就是 php  curl 机制 不懂的可以看下我上面文章机制
          $open = fopen('demo.mp3','w');
          fwrite($open,$res);
          fclose($open);
          

          php curlHttp

          以上就是本文的全部内容,希望对各人的学习有所协助,也希望各人多多支持聚合网。