前端UNI-APP上传方式
wx.uploadVoice({
localId: localId, // 需要上传的音频的本地ID,由stopRecord接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: async (res) => {
var serverId = res.serverId; // 返回音频的服务器端ID
let ajax = new api()
let data = await ajax.request(url.uploadMp3, {
serverId: serverId
})
}
});
PHP接口处理
$serverId = request()->post()['serverId']??"";
$access_token = (new WeixinJs())->getWxAccessToken();
$url ="https://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$access_token."&media_id=".$serverId;
$names = date('YmdHis').time().uniqid();
$file_name = "/web/audits/".$names.".amr";//保存的文件路径
$file_names = "/web/audits/".$names.".mp3";//待转化的文件路径
$file = file_get_contents($url);
file_put_contents($file_name, $file);
curlPost("http://127.0.0.1:6578/ffmpeg_amr.php",[
'file_name'=>$file_name,
'file_names'=>$file_names
]);
ffmpeg_amr.php
<?php
$file_name = $_POST['file_name'];//原始文件路径和文件名称
$file_names = $_POST['file_names'];//转化后的文件路径和文件名称
$command = '/usr/bin/ffmpeg -i '.$file_name." ".$file_names;
exec($command);
return true;
?>