RecorderManager

wx.getRecorderManager()

获取全局唯一的录音管理器 RecorderManager()

1.6.0 新版功能: 低版本需做 兼容处理

返回

RecorderManager()

class RecorderManager()

全局唯一的录音管理器

方法

参见

开始录制 RecorderManager.start()

RecorderManager.pause()

暂停录音

RecorderManager.resume()

继续录音

RecorderManager.stop()

停止录音

RecorderManager.onStart(function callback)

监听录音开始事件

参数
  • callback (function()) – 录音开始事件的回调函数

RecorderManager.onResume(function callback)

监听录音继续事件

参数
  • callback (function()) – 录音开始事件的回调函数

RecorderManager.onPause(function callback)

监听录音暂停事件

参数
  • callback (function()) – 录音暂停事件的回调函数

RecorderManager.onStop(function callback)

监听录音结束事件

参数
  • callback (function()) – 录音结束事件的回调函数

RecorderManager.onFrameRecorded(function callback)

监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。

参数
  • callback(res) (function()) –

    已录制完指定帧大小的文件事件的回调函数

    • res (Object) -

      • frameBuffer (ArrayBuffer) - 录音分片数据

      • isLastFrame (boolean) - 当前帧是否正常录音结束前的最后一帧

RecorderManager.onError(function callback)

监听录音错误事件

参数
  • callback(res) (function()) –

    录音错误事件的回调函数

    • res (Object) -

      • errMsg (string) - 错误信息

RecorderManager.onInterruptionBegin(function callback)

2.3.0 新版功能: 低版本需做 兼容处理

监听录音因为受到系统占用而被中断开始事件。 以下场景会触发此事件:微信语音聊天、微信视频聊天。此事件触发后,录音会被暂停。 pause 事件在此事件后触发

param function callback

录音因为受到系统占用而被中断开始事件的回调函数

RecorderManager.onInterruptionEnd(function callback)

2.3.0 新版功能: 低版本需做 兼容处理

监听录音中断结束事件。 在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。

param function callback

录音中断结束事件的回调函数

示例代码

const recorderManager = wx.getRecorderManager()

recorderManager.onStart(() => {
  console.log('recorder start')
})
recorderManager.onPause(() => {
  console.log('recorder pause')
})
recorderManager.onStop((res) => {
  console.log('recorder stop', res)
  const {tempFilePath} = res
})
recorderManager.onFrameRecorded((res) => {
  const {frameBuffer} = res
  console.log('frameBuffer.byteLength', frameBuffer.byteLength)
})

const options = {
  duration: 10000,
  sampleRate: 44100,
  numberOfChannels: 1,
  encodeBitRate: 192000,
  format: 'aac',
  frameSize: 50
}

recorderManager.start(options)