Skip to content

showRecord

录音功能,支持开始录音、停止录音和播放录音,支持小程序、H5、App端。

前置依赖

依赖参数

参数名类型说明
deps.getRecorderManager() => UniNamespace.RecorderManager获取录音管理器
deps.createInnerAudioContext() => UniNamespace.InnerAudioContext创建音频上下文
deps.detectEnvironment() => 'h5' | 'miniapp' | 'app' | 'unknown'检测环境函数(可选)
deps.checkMediaDevices() => boolean检测是否支持录音(H5端可选)
deps.logConsole['log']日志输出
deps.errorConsole['error']错误输出

环境要求

  • UniApp环境: 使用UniApp API,支持小程序、H5、App端
  • H5端: 需要浏览器支持 MediaDevices API

函数签名

typescript
function showRecord(
  options?: RecordOptions,
  deps: ShowRecordDeps
): Promise<RecordResult>

function stopRecord(deps: ShowRecordDeps): void

function playRecord(
  filePath: string,
  deps: ShowRecordDeps
): Promise<void>

interface ShowRecordDeps {
  getRecorderManager: () => UniNamespace.RecorderManager
  createInnerAudioContext: () => UniNamespace.InnerAudioContext
  detectEnvironment?: () => 'h5' | 'miniapp' | 'app' | 'unknown'
  checkMediaDevices?: () => boolean
  log: Console['log']
  error: Console['error']
}

interface RecordOptions {
  duration?: number
  sampleRate?: number
  numberOfChannels?: number
  encodeBitRate?: number
  format?: 'mp3' | 'aac' | 'wav'
  frameSize?: number
  extraData?: Record<string, unknown>
}

interface RecordResult {
  errMsg?: string
  tempFilePath?: string
  duration?: number
  fileSize?: number
  raw?: unknown
}

参数

showRecord

参数名类型必填默认值说明
optionsRecordOptions{}录音选项
options.durationnumber-录音时长(毫秒)
options.sampleRatenumber-采样率
options.format'mp3' | 'aac' | 'wav'-录音格式
depsShowRecordDeps-依赖注入对象

stopRecord

参数名类型必填说明
depsShowRecordDeps依赖注入对象

playRecord

参数名类型必填说明
filePathstring音频文件路径
depsShowRecordDeps依赖注入对象

返回值

函数类型说明
showRecordPromise<RecordResult>Promise,成功时返回录音结果,包含临时文件路径、时长、大小
stopRecordvoid无返回值
playRecordPromise<void>Promise,播放完成时 resolve

工作原理

  1. 环境检测:根据 detectEnvironment 函数检测当前运行环境
  2. 平台适配
    • 小程序端:使用 uni.getRecorderManageruni.createInnerAudioContext
    • H5端:使用 Web Audio API
    • App端:使用 uni.getRecorderManageruni.createInnerAudioContext
  3. 录音管理:通过录音管理器控制录音的开始和停止
  4. 音频播放:通过音频上下文播放录音文件

支持多平台统一接口,自动适配不同环境的实现差异。