小程序实现录音功能
本文实例为大家分享了小程序实现录音功能的具体代码,供大家参考,具体内容如下
首先判断权限
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;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。