小程序开发API之录音RecorderManager

版权声明:欢迎转载,可Chat交流,写博不易请标明出处: https://blog.csdn.net/JackJia2015/article/details/86719333

旧API wx.startRecord、wx.stopRecord、、停止维护,请使用 wx.getRecorderManager 代替

wx.startRecord(Object object)

开始录音。当主动调用 wx.stopRecord,或者录音超过1分钟时自动结束录音。当用户离开小程序时,此接口无法调用。本接口停止维护,请使用 wx.getRecorderManager 代替
调用前需要 用户授权 scope.record

参数Object object在这里插入图片描述

object.success 回调函数参数Object res在这里插入图片描述

wx.stopRecord()
停止录音。本接口停止维护,请使用 wx.getRecorderManager 代替

示例代码

wx.startRecord({ //开始录音
  success(res) {
    const tempFilePath = res.tempFilePath
  }
})
setTimeout(function () {
  wx.stopRecord() // 停止录音
}, 10000)

录音新的API

wx.getRecorderManager()

获取全局唯一的录音管理器 RecorderManager
返回值
RecorderManager

RecorderManager

全局唯一的录音管理器

方法

RecorderManager.start(Object object)
开始录音
参数Object object在这里插入图片描述

object.sampleRate 的合法值在这里插入图片描述

object.numberOfChannels 的合法值在这里插入图片描述

object.format 的合法值在这里插入图片描述

object.audioSource 的合法值在这里插入图片描述

采样率与编码码率限制
每种采样率有对应的编码码率范围有效值,设置不合法的采样率或编码码率会导致录音失败,具体对应关系如下表。在这里插入图片描述

RecorderManager.pause()
暂停录音

RecorderManager.resume()
继续录音

RecorderManager.stop()
停止录音

RecorderManager.onStart(function callback)
监听录音开始事件
function callback
录音开始事件的回调函数

RecorderManager.onResume(function callback)
监听录音继续事件
function callback
录音继续事件的回调函数

RecorderManager.onPause(function callback)
监听录音暂停事件
function callback
录音暂停事件的回调函数

RecorderManager.onStop(function callback)
监听录音结束事件
function callback
录音结束事件的回调函数
参数Object res在这里插入图片描述

RecorderManager.onFrameRecorded(function callback)
监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。
function callback
已录制完指定帧大小的文件事件的回调函数
参数Object res在这里插入图片描述

RecorderManager.onError(function callback)
监听录音错误事件
function callback
录音错误事件的回调函数
参数Object res在这里插入图片描述

RecorderManager.onInterruptionBegin(function callback)
监听录音因为受到系统占用而被中断开始事件。以下场景会触发此事件:微信语音聊天、微信视频聊天。此事件触发后,录音会被暂停。pause 事件在此事件后触发
function callback
录音因为受到系统占用而被中断开始事件的回调函数

RecorderManager.onInterruptionEnd(function callback)
监听录音中断结束事件。在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。
function callback
录音中断结束事件的回调函数

示例:
效果展示


在这里插入图片描述

代码
index.wxml

<button type="primary" bindtap="btnClick1">开始录音</button>
<button type="primary" bindtap="btnClick2">录音暂停</button>
<button type="primary" bindtap="btnClick3">录音暂停后继续播放</button>
<button type="primary" bindtap="btnClick4">录音停止</button>

index.wxss

button{
  margin: 20rpx;
  font-size: 30rpx;
}

index.js

Page({
  data: {
  },
  onLoad: function (options) {
    //获取全局唯一的录音管理器 RecorderManager
    this.recorderManager = wx.getRecorderManager()
    this.recorderManager.onStop((res) => {
      var tempFilePath = res.tempFilePath;// 文件临时路径
      var temp = tempFilePath.replace('.mp3', '')
      console.log('获取到文件')
    })
    this.recorderManager.onError((res) => {
      console.log('录音失败了!')
    })
  },
  //开始录音
  btnClick1:function(){
    this.recorderManager.start({
      duration: 60000,
      sampleRate: 16000,//采样率,有效值 8000/16000/44100
      numberOfChannels: 1,//录音通道数,有效值 1/2
      encodeBitRate: 96000,//编码码率
      format: 'mp3',//音频格式,有效值 aac/mp3
      frameSize: 50,//指定帧大小
      audioSource: 'auto'//指定录音的音频输入源,可通过 wx.getAvailableAudioSources() 获取
    })
  },
  //录音暂停
  btnClick2: function () {
    this.recorderManager.pause()
  },
  //录音暂停后继续播放
  btnClick3: function () {
    this.recorderManager.resume()
  },
  //录音停止
  btnClick4: function () {
    this.recorderManager.stop()
  }
})





猜你喜欢

转载自blog.csdn.net/JackJia2015/article/details/86719333