PHP语言微信开发:微信录音临时转永久存储
小标 2018-08-02 来源 : 阅读 1870 评论 0

摘要:本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

最近做开发的时候碰到了这个问题,甲方希望用户在微信端的录音能够一直有效。就是随时打开好友的分享就能听到好友的录音。可在微信官方开发手册上查到微信录音文件上传后只能在微信端保留3天时间,3天后就失效了。怎么办呢?

1、通过调用微信媒体资源下载接口将微信录音下载到本地 

@params

 

String access_token 微信公众号access_token

 

String serverId 通过录音上传接口获取到的serverId

 

https://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$serverId}

   

2、从微信方下载到本地的录音文件格式是amr,而微信网页浏览器并不支持amr文件的音频文件播放。所以我们需要将amr 转换成

网页能够识别的mp3格式。

怎么转换呢?我找到了一个平台可以支持这种转换,七牛云存储平台.通过七牛云存储我们可以将amr转换成mp3

require("./extension/autoload.php");//官方开发包 可在官方下载 php版本 载入其中的autoload.php extension 是随意 起的名字

 

/**

 

* @param

 

* String $filepa 本地amr文件路径

 

* @return

 

* String 解析后存储在七牛存储空间中的mp3远程地址

 

*/

 

function upchange($filepa){

 

$accessKey="七牛accessKey 在七牛后台获取";

 

$secretKey="七牛secretKey 在七牛后台获取";

 

$httpUrl ="七牛分配的访问地址 在七牛后台获取";

 

$bucket = "存储空间对象bucket 在七牛后台创建";

 

//转码时使用的队列名称

 

$pipeline = '转码队列名称 在七牛后台创建';

 

$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' => 'https://',

 

);

 

$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)-1;

 

for($i=0;$i<$length;$i++){

 

$str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max两个数之间的一个随机整数

 

}

 

return $str;

 

}

 

$amrToMp3 = upchange('本地amr文件路径');

 

//mp3 在七牛上的访问地址

 

var_dump($amrToMp3);

 

/**

 

* 如果你希望将这个mp3 存储在本地而不是在七牛上,那么你需要在程序上等待几秒,因为这时七牛在转换改amr的格式

 

*/

 

sleep(10);

 

$res = curlHttp($amrToMp3); //curlHttp 就是 php curl 机制 不懂的可以看下我下面文章机制

 

$open = fopen('demo.mp3','w');

 

fwrite($open,$res);

 

fclose($open);

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

 


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程