打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【微信JSSDK】PHP版微信录音文件下载

转存到自己服务器

  1. 调用微信JSSDK API 录音, 录音结束,上传到微信服务器,获取录音文件的 media_id
  2. 根据 media_id 下载录音文件(amr)格式
  3. 转存到自己服务器(amr需要转码成mp3) 或者 七牛云(有转码功能)

步骤1代码

     ...      /**       * 开始录音[省略了一部分代码]       */      startRecord: function() {        var that = this;        if (!that._startRecordFlag) {          typeof wx !== "undefined" && wx.startRecord({            success: function(res) {              Logger.log("res", res)              if (res.errMsg == 'startRecord:ok') {                Logger.log("正在开始录音....")                that._startTime = new Date().getTime();              }            }          });        }      },      /**       * 结束录音,并上传       */      stopRecord: function() {        that._startRecordFlag = false;        typeof wx !== "undefined" && wx.stopRecord({                    success: function(res) {            //上传录音            wx.uploadVoice({              localId: res.localId,              isShowProgressTips: 1,              success: function(resUpload) {                //下载录音文件到服务器,转存起来                Model.downloadRecordAudio(resUpload.serverId, function(result) {                  console.log(resUpload.serverId, result.path)                  that.attachment = result.path;                  // that.attachment = resUpload.serverId;                  that.stopRecordCallback && that.stopRecordCallback();                })              }            });          }        });      },...

步骤2代码

<?php//处理方法,upload();//media_id为微信jssdk接口上传后返回的媒体idfunction upload(){    $media_id = $_POST["media_id"];    $access_token = getAccessToken();        $path = "./weixinrecord/";   //保存路径,相对当前文件的路径    $outPath = "./php/weixinrecord/";  //输出路径,给show.php 文件用,上一级        if(!is_dir($path)){        mkdir($path);    }        //微 信上传下载媒体文件    $url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$media_id}";        $filename = "wxupload_".time().rand(1111,9999).".amr";    downAndSaveFile($url,$path."/".$filename);        $data["path"] = $outPath.$filename;    $data["msg"] = "download record audio success!";    // $data["url"] = $url;        echo json_encode($data);}//获取Tokenfunction getAccessToken() {    //  access_token 应该全局存储与更新,以下代码以写入到文件中做示例    $data = json_decode(file_get_contents("./access_token.json"));    if ($data->expire_time < time()) {        $appid = "youappid";  //自己的appid        $appsecret = "youappsecret";  //自己的appsecret        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";        $res = json_decode(httpGet($url));        $access_token = $res->access_token;        if ($access_token) {            $data->expire_time = time() + 7000;            $data->access_token = $access_token;            $fp = fopen("./access_token.json", "w");            fwrite($fp, json_encode($data));            fclose($fp);        }    }    else {        $access_token = $data->access_token;    }    return $access_token;}//HTTP get 请求function httpGet($url) {    $curl = curl_init();    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);    curl_setopt($curl, CURLOPT_TIMEOUT, 500);    curl_setopt($curl, CURLOPT_URL, $url);        $res = curl_exec($curl);    curl_close($curl);        return $res;}//根据URL地址,下载文件function downAndSaveFile($url,$savePath){    ob_start();    readfile($url);    $img  = ob_get_contents();    ob_end_clean();    $size = strlen($img);    $fp = fopen($savePath, 'a');    fwrite($fp, $img);    fclose($fp);}?>

步骤3代码【略】

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
js-sdk 调用微信接口
Flask 微信卡券小项目:从开发到上线
微信公众平台技术实操(8):用微信开发模式做欢迎词
微信JS-SDK分享说明
PHP微信开发微信录音临时转永久存储
微信接口测试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服