CameraContext.takePhoto

更新时间 2024-07-26 09:47:51
收藏
我的收藏

基础库 2.41.0 开始支持本方法,低版本需做兼容处理,这是一个异步方法。

拍摄照片。

前提条件
业务背景
使用限制
注意事项
Tip:开发者工具暂不支持此能力,请用真机扫码调试。
支持沙盒
相关教程

语法

CameraContext.takePhoto(options)

参数说明

options 为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
qualityenumnormal
成像质量
2.41.0
successfunction
接口调用成功的回调函数
2.41.0
failfunction
接口调用失败的回调函数
2.41.0
completefunction
接口调用结束的回调函数(调用成功、失败都会执行)
2.41.0

quality 的合法值

说明最低支持版本
high
高质量
2.41.0
normal
中质量
2.41.0
low
低质量
2.41.0

回调成功

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"CameraContext.takePhoto:ok"
2.41.0
sizenumber
本地文件大小(单位:B)
2.41.0
widthstring
图片宽度(单位:px)
2.41.0
heightstring
图片高度(单位:px)
2.41.0
tempImagePathstring
照片文件的临时路径 (本地路径),Android 是 jpg 图片格式,iOS 是 png
2.41.0

回调失败

object 类型,属性如下:

属性名类型说明最低支持版本
errMsgstring
"CameraContext.takePhoto:fail" + 详细错误信息
2.41.0

errMsg 参数说明

错误码

错误信息

错误描述

10402

null throwable native exception ${throwable} stack:${stack}

客户端异常

21102

acquire image fail

获取图片失败

21103

save temp file fail

图片保存失败

21104

operation is in progress, please do not call again

连续拍照

21105

not allow to invoke at 'scanCode' mode

扫码模式下不能调用

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

<!-- index.ttml -->
<camera flash="off" style="width: 100%; height: 500rpx;"></camera>
<button type="primary" bindtap="takePhoto">拍照</button>
<image class="img" mode="widthFix" src="{{src}}"></image>
// index.js
Page({
  data: {
    src: "",
  },
  takePhoto() {
    const ctx = tt.createCameraContext();
    ctx.takePhoto({
      quality: "high",
      success: (res) => {
        this.setData({
          src: res.tempImagePath,
        });
      },
    });
  },
});