更新记录
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 |
媒体类型:image 或 video |
path |
图片或视频的应用本地缓存路径 |
snapshotPath |
视频首帧图片路径,仅视频结果提供 |
duration |
视频时长,单位为秒,仅视频结果提供 |
pickMedia 的成功结果为 { files: CameraFile[] }。
返回文件位于应用缓存目录,系统可能清理缓存;如需长期保存,请在业务代码中复制到持久化目录。
错误码
errCode |
含义 |
|---|---|
9011001 |
参数非法 |
9011002 |
权限被拒绝 |
9011003 |
当前页面不可用 |
9011004 |
媒体导出失败 |
9011005 |
已有相机或相册操作正在进行 |
9011006 |
用户取消 |
open 的 errSubject 为 taurus-camera-open,pickMedia 的 errSubject 为 taurus-camera-pickMedia。取消操作进入 fail 回调。
同一时间只能执行一个相机或相册请求。在前一次请求结束前重复调用,会返回 9011005。
系统权限与隐私
插件会按功能申请以下权限:
- Android:相机、麦克风、图片和视频读取权限
- iOS:相机、麦克风、照片访问权限
插件不包含广告、统计或网络上传代码。媒体仅在设备本地处理,并将本地文件路径返回给当前应用。
常见问题
调用后提示当前页面不可用
请在 App 页面已显示且存在可用 Activity/ViewController 时调用,不要在应用启动过早或页面销毁后调用。
真机没有出现相机或相册
确认已制作包含本插件的自定义运行基座,并检查系统设置中相机、麦克风和照片权限是否被拒绝。
为什么取消也进入 fail
这是插件的统一 API 约定。通过 error.errCode === 9011006 判断用户取消即可。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 0
赞赏 0
下载 12473952
赞赏 1936
赞赏
京公网安备:11010802035340号