微信js-sdk 录音功能的示例代码
需求描述
制作一个H5页面,打开之后可以录音,并将录音文件提交至后台
微信录音最长时长为1min
微信官方文档--音频接口
代码如下
//isVoice:0-未录音1-录音中2-录完音 //点击录音/录音中按钮展示点击录音
需求描述
制作一个H5页面,打开之后可以录音,并将录音文件提交至后台
微信录音最长时长为1min
微信官方文档--音频接口
代码如下
//isVoice:0-未录音1-录音中2-录完音 //点击录音/录音中按钮展示点击录音
wx.ready(()=>{ wx.onVoiceRecordEnd({ //录音时间超过一分钟没有停止的时候会执行complete回调 complete:function(res){ _this.isVoice=2 _this.localId=res.localId; } }) }) } }) }, //开始录音 voiceStart(event){ let_this=this event.preventDefault() //延时后录音,避免误操作 this.recordTimer=setTimeout(function(){ wx.startRecord({ success:function(){ _this.startTime=newDate().getTime() _this.isVoice=1 }, cancel:function(){ _this.isVoice=0 } }) },300) }, //停止录音 voiceEnd(event){ this.isVoice=2 let_this=this event.preventDefault() //间隔太短 if(newDate().getTime()-this.startTime<300){ this.startTime=0 //不录音 clearTimeout(this.recordTimer) }else{ wx.stopRecord({ success:function(res){ //微信生成的localId,此时语音还未上传至微信服务器 _this.localId=res.localId }, fail:function(res){ console.log(JSON.stringify(res)) } }) } }, //试听 tryListen(){ let_this=this wx.playVoice({ localId:_this.localId//需要播放的音频的本地ID,由stopRecord接口获得 }) console.log('试听。。。') wx.onVoicePlayEnd({//监听播放结束 success:function(res){ console.log('试听监听结束') _this.isListen=0 } }); }, //试听停止 tryStop(){ let_this=this wx.pauseVoice({ localId:_this.localId//需要停止的音频的本地ID,由stopRecord接口获得 }) }, //处理录音数据 voiceHandle(){ let_this=this wx.uploadVoice({ localId:this.localId,//需要上传的音频的本地ID,由stopRecord接口获得 isShowProgressTips:1,//默认为1,显示进度提示 success:function(res){ //微信语音已上传至微信服务器并返回一个服务器id _this.serverId=res.serverId;//返回音频的服务器端ID _this.upVoice() } }) }, //自己后台上传接口 upVoice(){ letdata={ id:this.id, serviceId:this.serverId } voiceApi.upVoice(data) .then(res=>{ if(res.data.code==200){ //!!todo隐藏loading this.isSubmit=true this.$Message.message('提交成功') this.closeMask() }else{ this.$Message.message(res.data.message) } }) .catch(err=>{ console.log(err) }) },
1.微信jsdk配置
2.调取微信录音开始方法 wx.startRecord
3.调取微信录音结束方法 wx.stopRecord
成功后返回一个本地音频id localId
⚠️如果不调用录音结束方法,待录音1min后自动结束,需要wx.onVoiceRecordEnd监听录音结束
4.上传录音至微信服务器 wx.uploadVoice
返回serverId
⚠️微信存储时间有限,有效期3天
⚠️目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请登录微信公众平台,在开发-接口权限的列表中,申请提高临时上限。
5.调取自己后台上传至自己服务器
这部可以看做,将serverId传给自己的服务器,然后自己服务器调微信提供的接口去下载(serverId)至自己服务器存储
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。