php jssdk amr,HTML5微信jssdk录音播放语音的方法

HTML5微信jssdk录音播放语音的方法

需要注意的2个问题

1 就是一定要判断1秒内 录音都不算 ps:太短不能录音

2 录音超过1分钟 会发现正在录音突然消失 所以要写wx.onVoiceRecordEnd 这个是是1分钟会自动出发 然后写上传数据 ps这个必须要写在wx.startRecord里面 不然不触发!!!切记

前端代码如下

 
 

var START;

$(‘.luyin‘).on(‘touchstart‘,function () {

new Date().getTime();

wx.startRecord({

success: function(){

START = new Date().getTime();

wx.onVoiceRecordEnd({

// 录音时间超过一分钟没有停止的时候会执行 complete 回调

complete: function (res) {

alert(‘最多只能录制一分钟‘);

var localId = res.localId;

uploadluyin(localId,60000);

}

});

},

cancel: function () {

alert(‘用户拒绝授权录音‘);

return false;

}

});

})

$(‘.luyin‘).on(‘touchend‘,function () {

var END = new Date().getTime();

//录音时间

var luyintime=END - START;

if(luyintime < 2000){

END = 0;

START = 0;

wx.stopRecord({});

alert(‘录音时间不能少于2秒‘);

return false;

}else {

wx.stopRecord({

success: function (res) {

var localId = res.localId;

uploadluyin(localId,luyintime);

}

});

}

})

function uploadluyin(localId,luyintime) {

wx.uploadVoice({

localId: localId, // 需要上传的音频的本地ID,由stopRecord接口获得

isShowProgressTips: 1, // 默认为1,显示进度提示

success: function (res) {

var serverId = res.serverId; // 返回音频的服务器端ID

console.log(serverId);

$.post("/home/xishanluyin/scyuyin", {

"serverId": serverId,

"luyintime": luyintime

},

function (data) {

if (data.success == 1) {

alert(‘录音成功‘);

} else {

alert(data.msg);

}

}, "json");

}

})

}

后端代码 核心代码如下直接写入amr就行 因为生成的默认都是amr

 
 

$ft = copy("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$accessToken}&media_id={$imgServerId}",

"{$imgServerId}.mp3");

//转成mp3 注意只有在真机上才可以成功转成mp3 微信web开发者工具生成的amr不能转成mp3的

shell_exec(‘ffmpeg -i _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.amr _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.mp3‘);

ffmpeg 命令需要安装一些软件

具体说明请ffmpeg源码安装教程

转好的mp3拖到浏览器测试下 如果可以 就说明转mp3成功了

然后返回web路径就OK啦 这个audio就可以访问啦

原文:https://www.cnblogs.com/newmiracle/p/11872579.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值