更新记录

1.0.0(2026-08-01)

1.0.0

  • 首次发布。
  • 支持 Android 和 iOS。
  • 支持 uni-app 与 uni-app x。
  • 支持拍照、长按录像、前后摄像头切换、重拍及取消。
  • 支持图片和视频单选、多选及预览。
  • 支持限制录像时长和视频选择时长。
  • 提供统一的 success、fail、complete 回调及错误码。

平台兼容性

uni-app(4.25)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.25)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × ×

taurus-camera 插件使用说明

taurus-camera 提供原生拍照、录像以及图片/视频多选能力,支持 uni-app 和 uni-app x 的 Android、iOS App。

运行要求

  • HBuilderX 4.25+
  • Android 5.1(API 22)+
  • iOS 12+
  • 仅支持 App,不支持 Web、小程序和 HarmonyOS
  • 插件包含原生混编代码,调试时需要制作自定义运行基座;正式发布请使用支持 UTS 付费插件的云端打包方式

安装

从 DCloud 插件市场导入插件后,确认项目中存在:

uni_modules/taurus-camera

在需要使用的页面中导入 API:

import { open, pickMedia } from '@/uni_modules/taurus-camera'

拍照或录像

import { open } from '@/uni_modules/taurus-camera'

open({
  maxDuration: 60,
  success: (result) => {
    console.log('类型:', result.type)
    console.log('文件路径:', result.path)

    if (result.type === 'video') {
      console.log('视频首帧:', result.snapshotPath)
      console.log('视频时长:', result.duration)
    }
  },
  fail: (error) => {
    console.error(error.errCode, error.errMsg)
  },
  complete: (resultOrError) => {
    console.log('操作结束:', resultOrError)
  }
})

相机页面中轻触快门拍照,长按快门录像。

open(options) 参数

参数 类型 必填 默认值 说明
maxDuration number 60 最大录像时长,单位为秒,必须是正整数
success function - 拍照或录像成功回调
fail function - 权限拒绝、取消或执行失败回调
complete function - 操作结束回调,成功和失败都会执行

从相册选择图片或视频

import { pickMedia } from '@/uni_modules/taurus-camera'

pickMedia({
  maximum: 9,
  maxVideoDuration: 300,
  success: ({ files }) => {
    files.forEach((file) => {
      console.log(file.type, file.path)
    })
  },
  fail: (error) => {
    console.error(error.errCode, error.errMsg)
  }
})

pickMedia(options) 参数

参数 类型 必填 默认值 说明
maximum number 9 最多选择的文件数量,必须是正整数
maxVideoDuration number 300 可选择的视频最大时长,单位为秒,必须是正整数
success function - 选择和导出成功回调
fail function - 权限拒绝、取消或执行失败回调
complete function - 操作结束回调,成功和失败都会执行

返回值

type CameraFile = {
  type: 'image' | 'video'
  path: string
  snapshotPath?: string
  duration?: number
}
字段 说明
type 媒体类型:imagevideo
path 图片或视频的应用本地缓存路径
snapshotPath 视频首帧图片路径,仅视频结果提供
duration 视频时长,单位为秒,仅视频结果提供

pickMedia 的成功结果为 { files: CameraFile[] }

返回文件位于应用缓存目录,系统可能清理缓存;如需长期保存,请在业务代码中复制到持久化目录。

错误码

errCode 含义
9011001 参数非法
9011002 权限被拒绝
9011003 当前页面不可用
9011004 媒体导出失败
9011005 已有相机或相册操作正在进行
9011006 用户取消

openerrSubjecttaurus-camera-openpickMediaerrSubjecttaurus-camera-pickMedia。取消操作进入 fail 回调。

同一时间只能执行一个相机或相册请求。在前一次请求结束前重复调用,会返回 9011005

系统权限与隐私

插件会按功能申请以下权限:

  • Android:相机、麦克风、图片和视频读取权限
  • iOS:相机、麦克风、照片访问权限

插件不包含广告、统计或网络上传代码。媒体仅在设备本地处理,并将本地文件路径返回给当前应用。

常见问题

调用后提示当前页面不可用

请在 App 页面已显示且存在可用 Activity/ViewController 时调用,不要在应用启动过早或页面销毁后调用。

真机没有出现相机或相册

确认已制作包含本插件的自定义运行基座,并检查系统设置中相机、麦克风和照片权限是否被拒绝。

为什么取消也进入 fail

这是插件的统一 API 约定。通过 error.errCode === 9011006 判断用户取消即可。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android: 1. android.permission.CAMERA:用于拍摄照片和视频。 2. android.permission.RECORD_AUDIO:用于录制视频声音。 3. android.permission.READ_EXTERNAL_STORAGE:用于在 Android 12 及以下系统读取用户选择的图片和视频。 4. android.permission.READ_MEDIA_IMAGES:用于在 Android 13 及以上系统选择图片。 5. android.permission.READ_MEDIA_VIDEO:用于在 Android 13 及以上系统选择视频。 6. android.permission.READ_MEDIA_VISUAL_USER_SELECTED:用于适配 Android 14 的部分照片和视频访问授权。 iOS: 1. NSCameraUsageDescription:用于拍摄照片和视频。 2. NSMicrophoneUsageDescription:用于录制视频声音。 3. NSPhotoLibraryUsageDescription:用于选择照片和视频。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件不收集、存储或上传任何用户数据,不包含网络请求,也没有数据接收服务器。 插件仅在用户主动授权并调用相机或相册功能时,在设备本地拍摄或读取用户选择的图片、视频,将媒体文件复制到当前应用的本地缓存目录,并把本地文件路径返回给调用方。相关数据不会由本插件发送到任何服务器。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无。本插件不包含任何广告、广告SDK、统计SDK或广告展示逻辑。

暂无用户评论。