总体逻辑就是,我们从微信的服务器端,把录制好的音频,放到本地,但放到本地的音频是amr格式的无法播放,所以我们要将录好的音频,上传到七牛转码成mp3格式,然后本地调用七牛的链接地址就可以了。
微信播放录制上传,仅支持https协议
首先,需要安装EasyWechat,七牛的php-sdk
安装EasyWechat,具体配置方法参照官方文档:https://www.easywechat.com/docs/5.x/installation
composer require overtrue/wechat:~5.0 -vvv
安装七牛php-sdk,配置方法参照官方文档:https://developer.qiniu.com/kodo/1241/php
php require qiniu/php-sdk
接下来
使用EasyWechat获取到微信的配置,遇到微信配置没过会显示什么signature invalid,可能是因为你没有在公众号配置域名白名单,也可能是因为你没有在公众号里把域名加入到JS安全名单里:
app/Http/Controllers/UserController.php
use EasyWechat;
...
public function voice_test(){
$app = EasyWeChat::officialAccount();
return view("voice.test")
->withApp($app);
}
resource/voice/test.blade.php
直接复制就可以了
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=640, user-scalable=no">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-title" content="">
<title>录音test</title>
<style type="text/css">
@charset "utf-8";
*{ margin:0px; padding:0px; box-sizing:border-box; -webkit-tap-highlight-color:rgba(0,0,0,0);}
html{ max-width:640px; margin:0 auto;}
body{ font-family:"Pin