Back to Uni App

Create Camera Context

docs/api/create-camera-context.md

2.3.317.1 KB
Original Source
<!-- ## uni.createCameraContext() @createcameracontext -->

::: sourceCode

uni.createCameraContext() @createcameracontext

GitCode: https://gitcode.com/dcloud/uni-component/tree/alpha/uni_modules/uni-camera

GitHub: https://github.com/dcloudio/uni-component/tree/alpha/uni_modules/uni-camera

:::

创建 camera 上下文 CameraContext 对象。

通过本API,可操作摄像头组件进行拍照、录像。

参考文档:

createCameraContext 兼容性

Web微信小程序AndroidiOSHarmonyOS
-4.414.614.61<a style="color:unset;" href="https://vote.dcloud.net.cn/#/?name=uni-app%20x">x</a>

返回值

类型必备
CameraContext

CameraContext 的属性描述

名称类型必备默认值兼容性描述
offAndroidCameraOriginalFrameany-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: x停止获取Android平台的原始帧数据

CameraContext 的方法 @cameracontext-values

onCameraFrame(callback : (frame : CameraContextOnCameraFrame) => void) : CameraContextCameraFrameListener | null; @oncameraframe

onCameraFrame 获取 Camera 实时帧数据

onCameraFrame 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
callback(frame: CameraContextOnCameraFrame) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x
CameraContextOnCameraFrame 的属性值 @cameracontextoncameraframe-values
名称类型必备默认值兼容性描述
widthnumber-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x图像数据矩形的宽度
heightnumber-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x图像数据矩形的高度
dataArrayBuffer-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x图像像素点数据,一维数组,每四项表示一个像素点的 rgba
返回值
类型必备
CameraContextCameraFrameListener
CameraContextCameraFrameListener 的方法 @cameracontextcameraframelistener-values
start(options : CameraContextCameraFrameListenerStartOptions) : void; @start

start 开始监听帧数据

start 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextCameraFrameListenerStartOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
success(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)
stop(options : CameraContextCameraFrameListenerStopOptions) : void; @stop

stop 停止监听帧数据

stop 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextCameraFrameListenerStopOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
success(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)

onAndroidCameraOriginalFrame(callback: (imageProxy: ImageProxy) => void): void; @onandroidcameraoriginalframe

onAndroidCameraOriginalFrame 获取Android平台的原始帧数据,**获取到了ImageProxy使用后一定要close,否则App会触发崩溃

onAndroidCameraOriginalFrame 兼容性
Web微信小程序AndroidiOSHarmonyOS
-4.41--x
参数
名称类型必填默认值兼容性描述
callback(imageProxy: ImageProxy) => void-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

getCurrentZoom() : number; @getcurrentzoom

getCurrentZoom 获取当前缩放级别

getCurrentZoom 兼容性
Web微信小程序AndroidiOSHarmonyOS
-4.41--x
返回值
类型
number

setZoom(options : CameraContextSetZoomOptions) : void; @setzoom

setZoom 设置缩放级别

setZoom 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextSetZoomOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
zoomnumber-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x缩放级别,范围[1, maxZoom]zoom 可取小数,精确到小数后一位。maxZoom 可在 initdone 返回值中获取。
success(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)

takePhoto(options : CameraContextTakePhotoOptions) : void; @takephoto

takePhoto 拍摄照片

takePhoto 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextTakePhotoOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
qualitystring'normal'Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x成像质量
selfieMirrorbooleantrueWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x前置摄像头拍照时是否开启镜像
success(result: CameraContextTakePhotoResult) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(error: CameraContextFail) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)
quality 的属性描述
合法值兼容性描述
highWeb: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x-
normalWeb: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x-
lowWeb: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x-
originalWeb: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x-
CameraContextTakePhotoResult 的属性值 @cameracontexttakephotoresult-values
名称类型必备默认值兼容性描述
tempImagePathstring-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png。
照片会存放到uni-media目录下文件系统
CameraContextFail 的属性值 @cameracontextfail-values
名称类型必备默认值兼容性描述
errCodenumber-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x
errSubjectstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x统一错误主题(模块)名称
dataany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x错误信息中包含的数据
causeError-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x源错误信息,可以包含多个错误,详见SourceError
errMsgstring-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

errCode 的属性描述

合法值兼容性描述
2003002Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x相机权限未授权
2003003Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x拍照失败
2003004Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x相机不可用
2003005Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x相机正在使用中
2003006Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x相机初始化失败
2003007Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x录制的视频地址不存在
2003008Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x录制失败
2003009Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: xapp进入后台,摄像头终止
2003100Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x相机内部错误
2003101Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x录制视频的视频压缩失败

startRecord(options: CameraContextStartRecordOptions): void; @startrecord

startRecord 开始录像

startRecord 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextStartRecordOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
timeoutnumber30Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x录制时长上限,单位为秒
selfieMirrorbooleantrueWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x前置摄像头录制视频时是否开启镜像
success(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(error: CameraContextFail) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)
CameraContextStartRecordOptions 的方法 @cameracontextstartrecordoptions-values
timeoutCallback: (result: any) => void @timeoutcallback

timeoutCallback 超过录制时长上限时会结束录像并触发此回调,录像异常退出时也会触发此回调

timeoutCallback 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
resultany-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

stopRecord(options: CameraContextStopRecordOptions) : void; @stoprecord

stopRecord 结束录像

stopRecord 兼容性
Web微信小程序AndroidiOSHarmonyOS
--4.614.61x
参数
名称类型必填默认值兼容性描述
optionsCameraContextStopRecordOptions-Web: -; 微信小程序: -; Android: -; iOS: -; HarmonyOS: x

options 的属性描述

名称类型必备默认值兼容性描述
compressedbooleanfalseWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x启动视频压缩,压缩效果同chooseVideo
success(result: CameraContextStopRecordResult) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用成功的回调函数
fail(error: CameraContextFail) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用失败的回调函数
complete(result: any) => voidnullWeb: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x接口调用结束的回调函数(调用成功、失败都会执行)
CameraContextStopRecordResult 的属性值 @cameracontextstoprecordresult-values
名称类型必备默认值兼容性描述
tempThumbPathstring-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x封面图片文件的临时路径 (本地路径)
图片会以jpg格式存放到uni-media目录下文件系统
tempVideoPathstring-Web: -; 微信小程序: -; Android: 4.61; iOS: 4.61; HarmonyOS: x视频的文件的临时路径 (本地路径)
视频将以mp4格式存放到uni-media目录下文件系统
<!-- UTSAPIJSON.createCameraContext.example -->

参见

示例代码另见 camera组件文档

<!-- UTSAPIJSON.createCameraContext.example -->

通用类型

GeneralCallbackResult

名称类型必备默认值兼容性描述
errMsgstring-Web: -; 微信小程序: 4.41; Android: -; iOS: -; HarmonyOS: -错误信息