这篇文章主要为大家展示了“PHP微信开发之微信录音临时转永久存储的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP微信开发之微信录音临时转永久存储的示例分析”这篇文章吧。
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格式。
怎么转换呢?我找到了一个平台可以支持这种转换,七牛云存储平台.通过七牛云存储我们可以将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' => '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)-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微信开发之微信录音临时转永久存储的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。