转存到自己服务器

调用微信JSSDK API 录音, 录音结束,上传到微信服务器,获取录音文件的 media_id

根据 media_id 下载录音文件(amr)格式

转存到自己服务器(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代码

//处理方法,

upload();

//media_id为微信jssdk接口上传后返回的媒体id

function 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);

}

//获取Token

function 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代码【略】

php 微信 语音,【微信JSSDK】PHP版微信录音文件下载相关推荐

  1. 微信团队分享:iOS版微信的高性能通用key-value组件技术实践

    本文来自微信开发团队guoling的技术分享. 1.前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称 ...

  2. 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

    本文来自微信开发团队yanyang的技术分享. 1.引言 相信大家都遇到过一段特殊文本可以让iOS设备所有app闪退的经历.前段时间大年初一,又出现某个印度语字符引起iOS11系统奔溃,所幸iOS版微 ...

  3. 微信ndows mac下载,Mac版微信又更新,Windows电脑:就这?

    原标题:Mac版微信又更新,Windows电脑:就这? 作为雷科技编辑部为数不多的用MacBook办公的小编,日常用电脑版微信时,总能感觉到一种"劣化"的体验,因为Mac微信的更新 ...

  4. 添加文件夹语音_微信语音导出方法大全,微信群语音转发只需3步

    微信现在越来越受欢迎,因为它很大程度上方便人们分享他们的照片,生活事件,以及与他人随时随地聊天.但是如果给你一段会议录音让你整理出来打成音频文件,你是不是会感觉到头疼麻烦呢?这时候你一定会想如果能有一 ...

  5. android4.0怎么用微信,新开放接口 Android版微信4.0全新体验

    在iPhone版微信4.0推出以后,不少Android客户端的朋友也期待着最新版微信的到来,其实Android版微信的跟进速度很快,4.0版本现在已经开始内测了,微信4.0有着相当重要的更新,这也让这 ...

  6. 微信语音能保存多久服务器,微信语音播放失败?可能是这几个原因导致的,看完你就懂了...

    很多朋友在使用手机播放其他好友发送给自己的语音消息时,会出现"语音播放失败"的提示,不知道是什么原因导致的,本期文章就说说导致微信语音播放失败的几个原因,以及可行的解决办法. 一. ...

  7. 微信nickname乱码 php,php版微信公众平台回复中文出现乱码问题的解决方法

    本文实例分析了php版微信公众平台回复中文出现乱码问题的解决方法.分享给大家供大家参考,具体如下: 微信公众平开发时碰到回复中文乱码了,这个问题小编发现是编码问题,其实只要把编码转成utf8就可以解决 ...

  8. android微信个人界面设计,安卓版微信主界面的再设计

    聊天界面 前段时间刚刚上手Axure,因为某些契机,根据自己主观需求重新设计了安卓版微信界面.与现在版本区别主要是更加符合安卓的设计原则,同时对"发现"以及"我" ...

  9. php 下载微信语音文件怎么打开软件,微信群讲课或语音讨论交流 如何把大家讲的微信语音合成一个音频文件mp3格式...

    想要将一些微信群讲课或语音讨论交流的微信语音导出来,然后把大家讲的微信语音合成一个音频文件mp3格式,这个过程怎么来实现的呢,嗯~ o(* ̄▽ ̄*)o .最终的效果是可是实现的,在这之前需要先分几个步 ...

  10. 100行微信跳一跳java_安卓版微信跳一跳辅助 跳一跳辅助Java代码

    安卓版微信跳一跳辅助,java实现,具体内容如下 已经看到网上有大神用各种方式实现了,我这是属于简易版ADB命令式实现. 操作方法 1.光标移动到起始点,点击FORM 2.光标移动到目标点,点击TO ...

最新文章

  1. Chrome与chromedriver版本对应
  2. csgo卡程序关不掉_微信推QQ小程序,取代QQ?网友:这功能有用?
  3. 互联网企业安全高级指南3.7.2 SDL落地率低的原因
  4. C++访问权限与继承
  5. 你不可不看的 Oracle RAC 日常基本维护命令
  6. 微信中打开h5页面,直接关闭窗口js
  7. shell脚本报错问题: -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory
  8. mysql5.6主从复制与基于amoeba实现读写分离
  9. 分享两款迷你FTP服务器
  10. centos7安装启动zookeeper
  11. 完成中国福利彩票快三的程序设计
  12. 处女座的约会(思维)
  13. VLAN及VLAN城域网规划
  14. JFlow:真心服务中国IT产业
  15. 运用freemark引擎的word模板导出
  16. 51822 proximity
  17. 上传附件,附件类型问题
  18. 2012最新password总结,社工你懂得
  19. 数据库视频——操作查询
  20. sql查找数据中某个字段是否有重复的值

热门文章

  1. WinRAR 去除广告弹窗,简单4步亲测有效!
  2. mysql 读写分离_详解MySQL读写分离
  3. 医学系统(一)医院常用的软件系统:PACS系统、HIS系统、RIS系统、LIS系统、CIS系统
  4. 实探恒大FF南沙生产基地;百度外卖退出历史舞台;斗鱼永久关闭陈一发直播账号 | 雷锋早报...
  5. win10各版本的历史记录
  6. 安卓手机怎么root_手机怎么root
  7. 广东百望税控盘初始化设置
  8. 第一次使用码云上传本地项目
  9. 易语言:游戏辅助 CF队伤“卡秒器“ 编程思路/开发者优化建议
  10. Axure元件-内联框架设计网页