Skip to content

recordInApp

App 端录音与播放适配器,showRecord 内部调用

前置依赖

typescript
interface RecordInAppDeps {
  getRecorderManager: UniApp['getRecorderManager']
  createInnerAudioContext: UniApp['createInnerAudioContext']
  log: Console['log']
  error: Console['error']
}
依赖说明
getRecorderManager录音管理器
createInnerAudioContext播放录音
log / error日志

recordInApp

函数签名

typescript
function recordInApp(options?: RecordOptions, deps: RecordInAppDeps): Promise<RecordResult>

参数

参数名类型必填说明
options.durationnumber最长录音 ms,默认 60000
options.sampleRatenumber采样率,默认 16000
options.numberOfChannelsnumber声道数,默认 1
options.encodeBitRatenumber编码码率,默认 48000
options.format'mp3' | 'aac' | 'wav'格式,默认 'mp3'
options.frameSizenumber帧大小,默认 50
depsRecordInAppDeps环境依赖

返回值

类型说明
Promise<RecordResult>onStop 时 resolve,含 tempFilePathdurationfileSize;录音错误 reject

stopRecordInApp

函数签名

typescript
function stopRecordInApp(deps: RecordInAppDeps): void

参数

参数名类型必填说明
depsRecordInAppDeps环境依赖

返回值

类型说明
void停止当前模块级缓存的 RecorderManager

playRecordInApp

函数签名

typescript
function playRecordInApp(filePath: string, deps: RecordInAppDeps): Promise<void>

参数

参数名类型必填说明
filePathstring音频文件路径
depsRecordInAppDeps环境依赖

返回值

类型说明
Promise<void>播放结束 resolve;播放错误 reject

工作原理

  1. 单例 RecorderManager:模块内缓存 recorderManager,首次录音时创建。
  2. recordInApp:注册 onStart / onError / onStop,调用 start 后立即返回 Promise,onStop 时 resolve(非 start 完成时)。
  3. stopRecordInApp:手动停止录音以触发 onStop
  4. playRecordInApp:创建 InnerAudioContext,播放结束后 destroy 并 resolve。