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,含 tempFilePath、duration、fileSize;录音错误 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。