HTML5微信jssdk录音播放语音的方法
HTML5微信jssdk录音播放语音的方法
需要注意的2个问题
1 就是一定要判断1秒内 录音都不算 ps:太短不能录音
2 录音超过1分钟 会发现正在录音突然消失 所以要写wx.onVoiceRecordEnd 这个是是1分钟会自动出发 然后写上传数据 ps这个必须要写在wx.startRecord里面 不然不触发!!!切记
前端代码如下
<pre>
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");
}
})
}
</pre>
后端代码 核心代码如下直接写入amr就行 因为生成的默认都是amr
<pre>
$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');
</pre>
ffmpeg 命令需要安装一些软件
具体说明请<a href="http://newmiracle.cn/?p=1072">ffmpeg源码安装教程</a>
转好的mp3拖到浏览器测试下 如果可以 就说明转mp3成功了
然后返回web路径就OK啦 这个audio就可以访问啦
HTML5微信jssdk录音播放语音的方法的更多相关文章
- html5 audio标签切换播放音乐的方法
html5 audio标签切换播放音乐的方法<pre><audio id="music1" preload loop="loop">&l ...
- 微信JSSDK录音的一些bug
UPDATE: 这篇博文已经过期, 新的BUG总结请看微信JSSDK与录音相关的坑 微信JSSDK有不少坑, 最近做一个webapp, 用到了其中的录音功能, 发现不少问题, 总结一下: 当你调用st ...
- 【原创】.Net 微信 JS-SDK图片、语音上传接口的实现(MVC)-(一 、上传图片)
前段时间在做一个微信的项目,遇到了一个上传图片的问题,花了一下午,解决了这个问题,然后把总结出来的代码,分享了出来. 最近又有一个图片+语音的功能, 更是蛋疼, 本次采用的不是File文件上传,然后转 ...
- 微信jssdk常见错误及解决方法
调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...
- html5 video获取实时播放进度的方法
getvideoprogress(); function getvideoprogress() { setTimeout(function () { var vid = document.getEle ...
- 从零开始实现基于微信JS-SDK的录音与语音评价功能
最近接受了一个新的需求,希望制作一个基于微信的英语语音评价页面.即点击录音按钮,用户录音说出预设的英文,根据用户的发音给出对应的评价.以下是简单的Demo: 控制对Web AP ...
- Java自学-集合框架 与数组的区别
Java集合框架与数组的区别 示例 1 : 使用数组的局限性 如果要存放多个对象,可以使用数组,但是数组有局限性 比如 声明长度是10的数组 不用的数组就浪费了 超过10的个数,又放不下 //Test ...
- React Navigation 导航栏样式调整+底部角标消息提示
五一佳节匆匆而过,有人选择在外面看人山人海,有人选择宅在家中度过五一,也有人依然坚守在第一线,致敬! 这是坚持学习react-native的第二篇文章,可能会迟到,但是绝不会缺席,这篇要涉及到的是re ...
- linux下使用selenium
安装chromedriver 1.安装chrome 用下面的命令安装最新的 Google Chrome yum install https://dl.google.com/linux/direct/g ...
- Spring Boot集成Druid数据库连接池
1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...
- 海思3519A 移植ffmpeg
文件下载 下载x264 git clone git://git.videolan.org/x264.git 下载ffmpeg git clone git://source.ffmpeg.org/ffm ...
- OAuth 2.0 的四种授权模式
RFC 6749 OAuth 2.0 的标准是 RFC 6749 文件.该文件先解释了 OAuth 是什么. OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者.......资源 ...
- 在ISTIO中让GRAFANA跑起来
比较轻车熟路了. 这个GRAFANA内,已集成了ISTIO常见的DASHBOARD了. 一,映射本地端口 kubectl port-forward -n istio-system $(kubectl ...
- MySQL 官方测试库
MySQL 官方测试库 github 地址 https://github.com/datacharmer/test_db MySQL 文档地址 https://dev.mysql.com/doc/em ...
- mybatis框架-choose when otherwise 的使用
需求:模拟实际业务情况,传入多条件进行查询 /** * 需求:模拟实际业务,用户传入多个条件,进行用户列表信息的查询 * @param roleids * @return */ public List ...