微信小程序普及了,你还不会开发,怎么也说不过去了,今天一起来了解下微信小程序录音功能。

首先判断权限
getPermission: function() { var that = 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(){
const options = {
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('recorder start');
Countdown(this); //开始计时
});
//错误回调
recorderManager.onerror((res) => {
console.log('recorder出错:' + res);
console.log(res);
cleartimeout(timer); //出错时停止计时
})
},暂停录音
// 暂停录音
pause: function() {
var that = this;
recorderManager.pause()
recorderManager.onPause((res) => {
console.log(res)
console.log('暂停录音')
clearTimeout(timer);
})
},继续录音
//继续录音
jixu: function() {
var that = 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)
})
},// 倒计时 function Countdown(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); };
// 时间展示 function formatSeconds(value) { var secondTime = parseInt(value); // 秒 var minuteTime = 0; // 分 var hourTime = 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); } } var result; //时间的展示方式为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; } return result; }
大家快去试试吧。





网友评论文明上网理性发言 已有0人参与
发表评论: