温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

小程序中wx.getRecorderManager()录音管理怎么用

发布时间:2022-01-19 17:18:49 来源:亿速云 阅读:455 作者:清风 栏目:开发技术

这篇文章主要为大家展示了小程序中wx.getRecorderManager()录音管理怎么用,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序中wx.getRecorderManager()录音管理怎么用”这篇文章吧。

1.小程序录音管理介绍 wx.getRecorderManager()
基础库 1.6.0 开始支持,低版本需做兼容处理,获取全局唯一的录音管理器 recorderManager。
2.小程序录音管理代码
// 录音管理
let record = function (recorderManager) {
  this.recorderManager = recorderManager
  this.recordStart()
}
record.prototype = {
  // 开始录音
  start: function (startObj) {
    this.recorderManager.start(startObj)
  },
  //录音开始事件
  recordStart: function () {
    this.recorderManager.onStart(() => {
      console.log(this.recorderManager, 'this.recorderManager')
    })
  }
}
3.Page onLoad配置
  //录音管理,new 出 第二阶段的实例
    recorderManager = wx.getRecorderManager()
    that.newRecord = new record(recorderManager)
     that.newRecord.recorderManager.onStop((res) => {
         console.log(res, '获取录制完的链接')
    })
    //播放录音
    innerAudioContext = wx.createInnerAudioContext()
    innerAudioContext.onEnded(() => {
      console.log("音频自然播放结束")
    })
4.现在开始录音
startRecord() {
        let that = this,
          startObj = {
            duration: 60000,
            sampleRate: 44100,
            numberOfChannels: 1,
            encodeBitRate: 192000,
            format: 'mp3',
            frameSize: 50
          }
        //录音开始
        that.newRecord.start(startObj)
        // 录音计时器
        recordTimeInterval = setInterval(function () {
        }, 1000)
  },
5.停止录音
  stopRecord() {
    clearInterval(recordTimeInterval);
    //停止录音事件
    this.newRecord.recorderManager.stop()
  }
6.播放录音
  // 播放录音
          playVoice(e) {
            let that = this
            let srcPath = e.currentTarget.dataset.temppath, // 点击当前传递的播放链接
                  duration = e.currentTarget.dataset.duration, // 录音时间
                  index = e.currentTarget.dataset.index // 索引
            checkArr[index] = srcPath   //用于页面判断播放一个,另一个暂停
            // 播放
            innerAudioContext.obeyMuteSwitch = false
            innerAudioContext.src = srcPath
            innerAudioContext.play()
            // 时间减少器
            playTimeInterval = setInterval(() => {
              let playTime = that.data.playTime += 1
            }, 1000)
          }
7.停止播放
// 停止播放
          stopVoice(forIndex, e) {
            let index;
            e !== undefined ? index = e.currentTarget.dataset.index : index = forIndex
            clearInterval(playTimeInterval)
            checkArr[index] = undefined
            innerAudioContext.stop()
          }
8.只能播放一个的代码
  // 只能播放一个
          onePlayFor(tempFilePath, src) {
            tempFilePath.forEach((el, i) => {
              if (el.tempFilePath !== src) {
                this.stopVoice(i)
              }
            })
          }
录音与停止录音使用小程序bind:touchstart='startRecord' bind:touchend='stopRecord' 事件

以上就是关于“小程序中wx.getRecorderManager()录音管理怎么用”的内容,如果该文章对您有所帮助并觉得写得不错,劳请分享给您的好友一起学习新知识,若想了解更多相关知识内容,请多多关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI