微信小程序> 小程序录音功能(包括授权,倒计时,暂停功能)

小程序录音功能(包括授权,倒计时,暂停功能)

浏览量:651 时间: 来源:一心只想

说先判断权限

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;}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎