# uni.createCameraContext()

创建并返回 camera 组件的上下文 cameraContext 对象。

平台差异说明

App H5 微信小程序 支付宝小程序 百度小程序 抖音小程序 飞书小程序 QQ小程序 快手小程序 京东小程序 元服务
x x x x

本API为 camera 组件配套的js API,与 camera 组件的平台兼容性相同,可实现非全屏摄像头。App端可通过plus.camera实现全屏摄像头。

cameraContext 对象的方法列表

方法 参数 说明 平台差异说明
takePhoto Object 拍照,可指定质量,成功则返回图片路径。
setZoom Object 设置缩放级别。 百度、QQ、快手、京东小程序不支持
startRecord Object 开始录像
stopRecord Object 结束录像,成功则返回封面与视频。
onCameraFrame Function 获取 Camera 实时帧数据。 微信小程序详情、支付宝小程序详情、抖音小程序支持详情

# cameraContext.takePhoto

takePhoto 的 Object 参数列表:

参数 类型 必填 说明
quality String 成像质量,值为high(高质量)、normal(普通质量)、low(低质量),默认normal
selfieMirror Boolean 是否开启镜像,默认true。仅微信小程序 2.22.0+ 支持
success Function 接口调用成功的回调函数 ,返回照片文件的临时路径,res = { tempImagePath }
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# cameraContext.setZoom

setZoom 的 Object 参数列表:

参数 类型 必填 说明
zoom String 缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 @initdone 返回值中获取。
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# cameraContext.startRecord

startRecord 的 Object 参数列表:

参数 类型 必填 说明
timeoutCallback Function 接超过30s或页面 onHide 时会结束录像
timeout Number 录制时长上限,单位为秒,默认30s。微信小程序最长不能超过 5 分钟,支付宝小程序最大录制时长 10 分钟。仅微信2.22.0+ 、支付宝1.11.0+小程序支持
selfieMirror Boolean 是否开启镜像,默认true。仅微信小程序 2.22.0+ 支持
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# cameraContext.stopRecord

stopRecord 的 Object 参数列表:

参数 类型 默认值 必填 说明
compressed Boolean false 启动视频压缩,压缩效果同 chooseVideo 。微信2.10.0+ 、抖音2.41.0(Android暂不支持)、快手小程序支持
success Function 接口调用成功的回调函数 ,返回封面与视频的临时路径,res = { tempThumbPath, tempVideoPath }。
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

注意

  • App下实现OCR等证件识别等需求,可在插件市场获取原生插件,https://ext.dcloud.net.cn/plugin?id=135
  • 微信小程序下实现OCR等证件识别等需求,插件市场也有封装,搜索 ocr 可见。
  • 可以通过用户授权API来判断用户是否给应用授予摄像头的访问权限https://uniapp.dcloud.io/api/other/authorize
  • 各家小程序平台对API的实现情况可能不一致,比如支付宝小程序调用createCameraContext时需要传参cameraId,使用时请以具体文档为准。
  • 支付宝小程序开发者工具(IDE)暂不支持调试此 API,请使用真机调试功能在真机进行调试。