Skip to content

showVideo

选择视频或录制视频,支持从相册选择或调用相机录制。

前置依赖

依赖参数

参数名类型说明
deps.chooseVideoUniApp['chooseVideo']选择视频 API
deps.logConsole['log']日志输出
deps.errorConsole['error']错误输出
deps.detectEnvironment() => 'h5' | 'miniapp' | 'app' | 'unknown'检测环境函数(可选)

环境要求

  • UniApp环境: 使用UniApp API,支持小程序、H5、App端

函数签名

typescript
function showVideo(
  options?: VideoOptions,
  deps: ShowVideoDeps
): Promise<VideoResult>

interface ShowVideoDeps {
  chooseVideo: UniApp['chooseVideo']
  log: Console['log']
  error: Console['error']
  detectEnvironment?: () => 'h5' | 'miniapp' | 'app' | 'unknown'
}

interface VideoOptions {
  sourceType?: ('album' | 'camera')[]
  compressed?: boolean
  maxDuration?: number
  camera?: 'back' | 'front'
  extraData?: Record<string, unknown>
}

interface VideoResult {
  errMsg?: string
  tempFilePath?: string
  duration?: number
  size?: number
  width?: number
  height?: number
  raw?: unknown
}

参数

参数名类型必填默认值说明
optionsVideoOptions{}视频选择选项
options.sourceType('album' | 'camera')[]['album', 'camera']视频来源类型
options.compressedbooleanfalse是否压缩
options.maxDurationnumber-最大录制时长(秒)
options.camera'back' | 'front'-使用前置或后置摄像头
depsShowVideoDeps-依赖注入对象

返回值

类型说明
Promise<VideoResult>Promise,成功时返回视频选择结果,包含临时文件路径、时长、尺寸等信息

工作原理

  1. 环境检测:根据 detectEnvironment 函数检测当前运行环境
  2. 平台适配:根据环境调用对应的适配器实现
    • 小程序端:使用 uni.chooseVideo
    • H5端:使用 uni.chooseVideo(录制功能受限)
    • App端:使用 uni.chooseVideo
  3. 视频处理:统一处理返回的视频数据,包括路径、时长、大小、分辨率等信息
  4. 返回结果:返回标准化的视频选择结果

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