uni.getRecorderManager()
获取全局唯一的录音管理器 recorderManager
。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 | 元服务 |
√ | x | √ | √ | √ | √ | √ | √ | √ | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
HBuilderX 4.31 |
recorderManager 对象的方法列表
方法 | 参数 | 说明 | 平台差异说明 |
start | options | 开始录音 | |
pause | | 暂停录音 | App 暂不支持 |
resume | | 继续录音 | App 暂不支持 |
stop | | 停止录音 | |
offStop | callback | 取消监听录音停止事件 | 仅支付宝小程序支持 |
onStart | callback | 录音开始事件 | |
offStart | callback | 移除录音开始事件 | 仅支付宝小程序支持 |
onPause | callback | 录音暂停事件 | |
offPause | callback | 移除监听录音暂停事件 | 仅支付宝小程序支持 |
onStop | callback | 录音停止事件,会回调文件地址 | |
onResume | callback | 监听录音继续事件 | 仅小程序支持 |
offResume | callback | 取消监听录音继续事件 | 仅支付宝小程序支持 |
onInterruptionBegin | callback | 监听录音因为受到系统占用而被中断开始事件。以下场景会触发此事件:微信语音聊天、微信视频聊天、QQ语音聊天、QQ视频聊天、电话响铃、接听电话。此事件触发后,录音会被暂停。pause 事件在此事件后触发 | 微信小程序、百度小程序、QQ小程序、快手小程序 |
onInterruptionEnd | callback | 监听录音中断结束事件。在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。 | 微信小程序、百度小程序、QQ小程序、快手小程序 |
onFrameRecorded | callback | 已录制完指定帧大小的文件,会回调录音分片结果数据。如果设置了 frameSize ,则会回调此事件 | App 暂不支持 |
offFrameRecorded | callback | 取消监听已录制完指定帧大小的文件事件,指定 frameSize 大小并且 format 参数设置为 mp3 格式,调用此接口才会有回调 | 仅支付宝小程序支持 |
onDecibelChange | callback | 监听声音分贝变化事件,详见 | 仅支付宝小程序支持 |
offDecibelChange | callback | 取消监听声音分贝变化事件,详见 | 仅支付宝小程序支持 |
onError | callback | 录音错误事件, 会回调错误信息 | |
offError | callback | 取消监听录音错误事件 | 仅支付宝小程序支持 |
start(options)
属性 | 类型 | 必填 | 说明 | 平台差异说明 |
duration | Number | 否 | 指定录音的时长,单位 ms ,如果传入了合法的 duration ,在到达指定的 duration 后会自动停止录音,最大值 600000(10 分钟),默认值 60000(1 分钟) | App、小程序支持 |
sampleRate | Number | 否 | 采样率,有效值 8000/16000/44100 | App、小程序支持 |
numberOfChannels | Number | 否 | 录音通道数,有效值 1/2 | 仅小程序支持 |
encodeBitRate | Number | 否 | 编码码率,有效值见下表格 | 仅小程序支持 |
format | String | 否 | 音频格式,有效值 aac/mp3/wav/PCM。App默认值为mp3,小程序默认值aac | App、小程序支持 |
frameSize | String | 否 | 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。 | App、百度小程序不支持 |
hideTips | Boolean | 否 | 隐藏录音图标。 | 支付宝小程序10.1.85+ |
audioSource | String | 否 | 指定录音的音频输入源。 | 微信小程序详见、支付宝小程序详见、百度小程序详见、快手小程序 |
detectDecibel | Boolean | 否 | 检测声音分贝数。详见 | 支付宝小程序10.2.0+ |
其中,采样率和码率有一定要求,具体有效值如下:
采样率 | 编码码率 |
8000 | 16000 ~ 48000 |
11025 | 16000 ~ 48000 |
12000 | 24000 ~ 64000 |
16000 | 24000 ~ 96000 |
22050 | 32000 ~ 128000 |
24000 | 32000 ~ 128000 |
32000 | 48000 ~ 192000 |
44100 | 64000 ~ 320000 |
48000 | 64000 ~ 320000 |
onStop(callback)
属性 | 类型 | 说明 |
tempFilePath | String | 录音文件的临时路径 |
duration | Number | 录音总时长。单位:s。(仅支付宝10.2.90+支持) |
fileSize | Number | 录音文件大小。单位:Byte。(仅支付宝10.2.90+支持) |
onFrameRecorded(callback)
属性 | 类型 | 说明 |
frameBuffer | ArrayBuffer | 录音分片结果数据 |
isLastFrame | Boolean | 当前帧是否正常录音结束前的最后一帧 |
onError(callback)
属性 | 类型 | 说明 |
errMsg | String | 错误信息 |
示例