title: RecorderManager

sidebar_label: RecorderManager

全局唯一的录音管理器

参考文档

方法

onError

监听录音错误事件

支持情况:RecorderManager - 图1 RecorderManager - 图2 RecorderManager - 图3

参考文档

  1. (callback: OnErrorCallback) => void
参数 类型 说明
callback OnErrorCallback 录音错误事件的回调函数

onFrameRecorded

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

支持情况:RecorderManager - 图4 RecorderManager - 图5 RecorderManager - 图6

参考文档

  1. (callback: OnFrameRecordedCallback) => void
参数 类型 说明
callback OnFrameRecordedCallback 已录制完指定帧大小的文件事件的回调函数

onInterruptionBegin

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

支持情况:RecorderManager - 图7 RecorderManager - 图8 RecorderManager - 图9

参考文档

  1. (callback: (res: TaroGeneral.CallbackResult) => void) => void
参数 类型 说明
callback (res: TaroGeneral.CallbackResult) => void 录音因为受到系统占用而被中断开始事件的回调函数

onInterruptionEnd

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

支持情况:RecorderManager - 图10 RecorderManager - 图11 RecorderManager - 图12

参考文档

  1. (callback: (res: TaroGeneral.CallbackResult) => void) => void
参数 类型 说明
callback (res: TaroGeneral.CallbackResult) => void 录音中断结束事件的回调函数

onPause

监听录音暂停事件

支持情况:RecorderManager - 图13 RecorderManager - 图14 RecorderManager - 图15

参考文档

  1. (callback: (res: TaroGeneral.CallbackResult) => void) => void
参数 类型 说明
callback (res: TaroGeneral.CallbackResult) => void 录音暂停事件的回调函数

onResume

监听录音继续事件

支持情况:RecorderManager - 图16 RecorderManager - 图17 RecorderManager - 图18

参考文档

  1. (callback: (res: TaroGeneral.CallbackResult) => void) => void
参数 类型 说明
callback (res: TaroGeneral.CallbackResult) => void 录音继续事件的回调函数

onStart

监听录音开始事件

支持情况:RecorderManager - 图19 RecorderManager - 图20 RecorderManager - 图21

参考文档

  1. (callback: (res: TaroGeneral.CallbackResult) => void) => void
参数 类型 说明
callback (res: TaroGeneral.CallbackResult) => void 录音开始事件的回调函数

onStop

监听录音结束事件

支持情况:RecorderManager - 图22 RecorderManager - 图23 RecorderManager - 图24

参考文档

  1. (callback: OnStopCallback) => void
参数 类型 说明
callback OnStopCallback 录音结束事件的回调函数

pause

暂停录音

支持情况:RecorderManager - 图25 RecorderManager - 图26 RecorderManager - 图27

参考文档

  1. () => void

resume

继续录音

支持情况:RecorderManager - 图28 RecorderManager - 图29 RecorderManager - 图30

参考文档

  1. () => void

start

开始录音

支持情况:RecorderManager - 图31 RecorderManager - 图32 RecorderManager - 图33

参考文档

  1. (option: StartOption) => void
参数 类型
option StartOption

stop

停止录音

支持情况:RecorderManager - 图34 RecorderManager - 图35 RecorderManager - 图36

参考文档

  1. () => void

参数

OnErrorCallback

录音错误事件的回调函数

  1. (result: OnErrorCallbackResult) => void
参数 类型
result OnErrorCallbackResult

OnErrorCallbackResult

参数 类型 说明
errMsg string 错误信息

OnFrameRecordedCallback

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

  1. (result: OnFrameRecordedCallbackResult) => void
参数 类型
result OnFrameRecordedCallbackResult

OnFrameRecordedCallbackResult

参数 类型 说明
frameBuffer ArrayBuffer 录音分片数据
isLastFrame boolean 当前帧是否正常录音结束前的最后一帧

OnStopCallback

录音结束事件的回调函数

  1. (result: OnStopCallbackResult) => void
参数 类型
result OnStopCallbackResult

OnStopCallbackResult

参数 类型 说明
duration number 录音总时长,单位:ms
fileSize number 录音文件大小,单位:Byte
tempFilePath string 录音文件的临时路径

StartOption

参数 类型 必填 说明
audioSource keyof AudioSource 指定录音的音频输入源,可通过 Taro.getAvailableAudioSources() 获取当前可用的音频源
duration number 录音的时长,单位 ms,最大值 600000(10 分钟)
encodeBitRate number 编码码率,有效值见下表格
format keyof Format 音频格式
frameSize number 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。
numberOfChannels keyof NumberOfChannels 录音通道数
sampleRate keyof SampleRate 采样率

AudioSource

指定录音的音频输入源

参数 说明
auto 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用
buildInMic 手机麦克风,仅限 iOS
headsetMic 耳机麦克风,仅限 iOS
mic 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android
camcorder 同 mic,适用于录制音视频内容,仅限 Android
voice_communication 同 mic,适用于实时沟通,仅限 Android
voice_recognition 同 mic,适用于语音识别,仅限 Android

Format

音频格式

参数 说明
mp3 mp3 格式
aac aac 格式
wav wav 格式
PCM pcm 格式

NumberOfChannels

录音通道数

参数 说明
1 1 个通道
2 2 个通道

SampleRate

采样率

参数 说明 编码码率
8000 8000 采样率 16000 ~ 48000
11025 11025 采样率 16000 ~ 48000
12000 12000 采样率 24000 ~ 64000
16000 16000 采样率 24000 ~ 96000
22050 22050 采样率 32000 ~ 128000
24000 24000 采样率 32000 ~ 128000
32000 32000 采样率 48000 ~ 192000
44100 44100 采样率 64000 ~ 320000
48000 48000 采样率 64000 ~ 320000

API 支持度

API 微信小程序 H5 React Native
RecorderManager.onError ✔️ ✔️
RecorderManager.onFrameRecorded ✔️
RecorderManager.onInterruptionBegin ✔️
RecorderManager.onInterruptionEnd ✔️
RecorderManager.onPause ✔️ ✔️
RecorderManager.onResume ✔️ ✔️
RecorderManager.onStart ✔️ ✔️
RecorderManager.onStop ✔️ ✔️
RecorderManager.pause ✔️ ✔️
RecorderManager.resume ✔️ ✔️
RecorderManager.start ✔️ ✔️
RecorderManager.stop ✔️ ✔️