小程序实现录音功能
本文实例为大家分享了小程序实现录音功能的具体代码,供大家参考,具体内容如下
首先判断权限
getPermission:function(){ varthat=this; wx.getSetting({ success(res){ console.log(res.authSetting) if(res.authSetting["scope.record"]===false){ wx.showModal({ title:'是否录音', content:'是否录音', success:function(tip){ if(tip.confirm){ wx.openSetting({ success:function(data){ if(data.authSetting["scope.record"]===true){ wx.showToast({ title:'授权成功', icon:'success', duration:1000 }) that.startLuYin() //授权成功之后,再调用chooseLocation选择地方 }else{ wx.showToast({ title:'授权失败', icon:'success', duration:1000 }) } } }) } } }) }else{ that.startLuYin() } } }) },
授权成功后开始录音
startLuYin(){ constoptions={ duration:10000*6*10,//指定录音的时长,单位ms sampleRate:16000,//采样率 numberOfChannels:1,//录音通道数 encodeBitRate:96000,//编码码率 format:'mp3',//音频格式,有效值aac/mp3 frameSize:50,//指定帧大小,单位KB } //开始录音 recorderManager.start(options); recorderManager.onStart(()=>{ console.log('recorderstart'); Countdown(this);//开始计时 }); //错误回调 recorderManager.onError((res)=>{ console.log('recorder出错:'+res); console.log(res); clearTimeout(timer);//出错时停止计时 }) },
暂停录音
//暂停录音 pause:function(){ varthat=this; recorderManager.pause() recorderManager.onPause((res)=>{ console.log(res) console.log('暂停录音') clearTimeout(timer); }) },
继续录音
//继续录音 jixu:function(){ varthat=this; recorderManager.resume() Countdown(that);//开始计时 recorderManager.onResume((res)=>{ }) },
停止录音
//停止录音 stop:function(){ recorderManager.stop(); recorderManager.onStop((res)=>{ this.tempFilePath=res.tempFilePath; console.log('停止录音',res.tempFilePath) clearTimeout(timer); }) },
播放声音
//播放声音 play:function(){ innerAudioContext.autoplay=true innerAudioContext.src=this.tempFilePath, innerAudioContext.onPlay(()=>{ console.log('开始播放') }) innerAudioContext.onError((res)=>{ console.log(res.errMsg) console.log(res.errCode) }) },
//倒计时 functionCountdown(that){ timer=setTimeout(function(){ console.log("----secondes----"+formatSeconds(secondes)); secondes++; if(secondes>=600){ recorderManager.stop(); clearTimeout(timer); } that.setData({ times:formatSeconds(secondes) }); Countdown(that); },1000); };
//时间展示 functionformatSeconds(value){ varsecondTime=parseInt(value);//秒 varminuteTime=0;//分 varhourTime=0;//小时 if(secondTime>60){//如果秒数大于60,将秒数转换成整数 //获取分钟,除以60取整数,得到整数分钟 minuteTime=parseInt(secondTime/60); //获取秒数,秒数取佘,得到整数秒数 secondTime=parseInt(secondTime%60); //如果分钟大于60,将分钟转换成小时 if(minuteTime>60){ //获取小时,获取分钟除以60,得到整数小时 hourTime=parseInt(minuteTime/60); //获取小时后取佘的分,获取分钟除以60取佘的分 minuteTime=parseInt(minuteTime%60); } } varresult; //时间的展示方式为00:00 if(secondTime<10){ result="0"+parseInt(secondTime); }else{ result=""+parseInt(secondTime); } if(minuteTime>0){ if(minuteTime<10){ result="0"+parseInt(minuteTime)+":"+result; }else{ result=""+parseInt(minuteTime)+":"+result; } }else{ result="00:"+result; } //由于限制时长最多为三分钟,小时用不到 if(hourTime>0){ result=""+parseInt(hourTime)+":"+result; } returnresult; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。