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.duration | number | 否 | 最长录音 ms,默认 60000 |
options.sampleRate | number | 否 | 采样率,默认 16000 |
options.numberOfChannels | number | 否 | 声道数,默认 1 |
options.encodeBitRate | number | 否 | 编码码率,默认 48000 |
options.format | 'mp3' | 'aac' | 'wav' | 否 | 格式,默认 'mp3' |
options.frameSize | number | 否 | 帧大小,默认 50 |
deps | RecordInAppDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<RecordResult> | 在 onStop 时 resolve,含 tempFilePath、duration、fileSize;录音错误 reject |
stopRecordInApp
函数签名
typescript
function stopRecordInApp(deps: RecordInAppDeps): void参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
deps | RecordInAppDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
void | 停止当前模块级缓存的 RecorderManager |
playRecordInApp
函数签名
typescript
function playRecordInApp(filePath: string, deps: RecordInAppDeps): Promise<void>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
filePath | string | 是 | 音频文件路径 |
deps | RecordInAppDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<void> | 播放结束 resolve;播放错误 reject |
工作原理
- 单例 RecorderManager:模块内缓存
recorderManager,首次录音时创建。 recordInApp:注册onStart/onError/onStop,调用start后立即返回 Promise,在onStop时 resolve(非 start 完成时)。stopRecordInApp:手动停止录音以触发onStop。playRecordInApp:创建InnerAudioContext,播放结束后destroy并 resolve。