# uni.createCameraContext()

创建 camera 上下文 CameraContext 对象。

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

参考文档:

# createCameraContext 兼容性

Android iOS HarmonyOS
4.61 4.61 x

# 返回值

类型 必备
CameraContext
名称 类型 必备 默认值 兼容性 描述
offAndroidCameraOriginalFrame any
停止获取Android平台的原始帧数据

# CameraContext 的方法

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

onCameraFrame 获取 Camera 实时帧数据

# onCameraFrame 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (frame: CameraContextOnCameraFrame) => void
# CameraContextOnCameraFrame 的属性值
名称 类型 必备 默认值 兼容性 描述
width number
图像数据矩形的宽度
height number
图像数据矩形的高度
data ArrayBuffer
图像像素点数据,一维数组,每四项表示一个像素点的 rgba
# 返回值
类型 必备
CameraContextCameraFrameListener
# CameraContextCameraFrameListener 的方法
# start(options : CameraContextCameraFrameListenerStartOptions) : void;

start 开始监听帧数据

# start 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
options CameraContextCameraFrameListenerStartOptions
名称 类型 必备 默认值 兼容性 描述
success (result: any) => void null
接口调用成功的回调函数
fail (result: any) => void null
接口调用失败的回调函数
complete (result: any) => void null
接口调用结束的回调函数(调用成功、失败都会执行)
# stop(options : CameraContextCameraFrameListenerStopOptions) : void;

stop 停止监听帧数据

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

# onAndroidCameraOriginalFrame(callback: (imageProxy: ImageProxy) => void): void;

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

# onAndroidCameraOriginalFrame 兼容性
HarmonyOS
x
# 参数
名称 类型 必填 默认值 兼容性 描述
callback (imageProxy: ImageProxy) => void

# getCurrentZoom() : number;

getCurrentZoom 获取当前缩放级别

# getCurrentZoom 兼容性
HarmonyOS
x
# 返回值
类型
number

# setZoom(options : CameraContextSetZoomOptions) : void;

setZoom 设置缩放级别

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

# takePhoto(options : CameraContextTakePhotoOptions) : void;

takePhoto 拍摄照片

# takePhoto 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
options CameraContextTakePhotoOptions
名称 类型 必备 默认值 兼容性 描述
quality string 'normal'
成像质量
合法值 兼容性 描述
high
normal
low
original
selfieMirror boolean true
前置摄像头拍照时是否开启镜像
success (result: CameraContextTakePhotoResult) => void null
接口调用成功的回调函数
fail (error: CameraContextFail) => void null
接口调用失败的回调函数
complete (result: any) => void null
接口调用结束的回调函数(调用成功、失败都会执行)
# CameraContextTakePhotoResult 的属性值
名称 类型 必备 默认值 兼容性 描述
tempImagePath string
照片文件的临时路径 (本地路径),安卓是jpg图片格式,ios是png。
照片会存放到uni-media目录下文件系统
# CameraContextFail 的属性值
名称 类型 必备 默认值 兼容性 描述
errCode number
合法值 兼容性 描述
2003002
相机权限未授权
2003003
拍照失败
2003004
相机不可用
2003005
相机正在使用中
2003006
相机初始化失败
2003007
录制的视频地址不存在
2003008
录制失败
2003009
app进入后台,摄像头终止
2003100
相机内部错误
2003101
录制视频的视频压缩失败
errSubject string
统一错误主题(模块)名称
data any
错误信息中包含的数据
cause Error 源错误信息,可以包含多个错误,详见SourceError
errMsg string

# startRecord(options: CameraContextStartRecordOptions): void;

startRecord 开始录像

# startRecord 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
options CameraContextStartRecordOptions
名称 类型 必备 默认值 兼容性 描述
timeout number 30
录制时长上限,单位为秒
selfieMirror boolean true
前置摄像头录制视频时是否开启镜像
success (result: any) => void null
接口调用成功的回调函数
fail (error: CameraContextFail) => void null
接口调用失败的回调函数
complete (result: any) => void null
接口调用结束的回调函数(调用成功、失败都会执行)
# CameraContextStartRecordOptions 的方法
# timeoutCallback: (result: any) => void

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

# timeoutCallback 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
result any

# stopRecord(options: CameraContextStopRecordOptions) : void;

stopRecord 结束录像

# stopRecord 兼容性
Android iOS HarmonyOS
4.61 4.61 x
# 参数
名称 类型 必填 默认值 兼容性 描述
options CameraContextStopRecordOptions
名称 类型 必备 默认值 兼容性 描述
compressed boolean false
启动视频压缩,压缩效果同chooseVideo
success (result: CameraContextStopRecordResult) => void null
接口调用成功的回调函数
fail (error: CameraContextFail) => void null
接口调用失败的回调函数
complete (result: any) => void null
接口调用结束的回调函数(调用成功、失败都会执行)
# CameraContextStopRecordResult 的属性值
名称 类型 必备 默认值 兼容性 描述
tempThumbPath string
封面图片文件的临时路径 (本地路径)
图片会以jpg格式存放到uni-media目录下文件系统
tempVideoPath string
视频的文件的临时路径 (本地路径)
视频将以mp4格式存放到uni-media目录下文件系统

# 参见

示例代码另见 camera组件文档

# 通用类型

# GeneralCallbackResult

名称 类型 必备 默认值 兼容性 描述
errMsg string
错误信息