小程序开放平台

文档中心
基础
路由
跳转
转发
界面
网络
支付
数据缓存
媒体
图片
地图
视频
富文本
相机
音频
录音
xhs.getRecorderManager
RecorderManager
位置
开放接口
设备
XHSML
性能
第三方平台
文件
数据分析
画布

RecorderManager

开发
>
JS API
>
媒体
>
录音
>
RecorderManager
>
更新时间:2026-04-10 18:00:16

基础库 3.151.0 开始支持。

xhs.getRecorderManager() 返回的全局唯一录音管理器实例。

方法

方法
说明
start(options)开始录音。若当前已有录音进行中,会先停止上一次再开始
pause()暂停录音
resume()继续录音(从暂停处恢复)
stop()停止录音,触发 onStop 回调并返回 tempFilePath

start(options) 参数说明

属性
类型
默认值
必填
说明
durationnumber60000录音时长上限(单位:ms),最长 10 分钟,到达后自动停止
sampleRatenumber44100采样率(Hz),推荐 44100
numberOfChannelsnumber1录音声道数,1 单声道 / 2 立体声
encodeBitRatenumber128000编码码率(bps),推荐 128000
formatstring'aac'音频格式
frameSizenumber指定帧大小(KB)。设置后每达到该大小触发一次 onFrameRecorded,用于流式 ASR 等场景

format 合法值

说明
aac推荐。压缩率高、质量好,移动端原生支持
mp3兼容性更广

事件

方法
触发时机
回调参数
onStart(callback)录音开始
onPause(callback)录音暂停
onResume(callback)录音继续
onStop(callback)录音停止{ tempFilePath: string, duration: number, fileSize: number }
onFrameRecorded(callback)达到 frameSize 时触发{ frameBuffer: ArrayBuffer, isLastFrame: boolean }
onError(callback)录音出错{ errMsg: string }
onInterruptionBegin(callback)系统中断录音开始(如来电)
onInterruptionEnd(callback)系统中断结束,可继续录音

示例代码

const recorderManager = xhs.getRecorderManager()

// 监听事件
recorderManager.onStart(() => {
  console.log('录音开始')
})
recorderManager.onStop((res) => {
  console.log('录音结束', res.tempFilePath)
  // 可将 tempFilePath 上传到云存储
})
recorderManager.onError((err) => {
  console.error('录音错误', err.errMsg)
})
recorderManager.onInterruptionBegin(() => {
  console.warn('录音被系统中断(如来电)')
})
recorderManager.onInterruptionEnd(() => {
  console.log('系统中断结束')
})

// 开始录音(推荐参数)
recorderManager.start({
  duration: 60000,
  sampleRate: 44100,
  numberOfChannels: 1,
  encodeBitRate: 128000,
  format: 'aac',
})

// 停止录音
recorderManager.stop()