开发
API

CameraContext.takePhoto

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

拍摄照片。

语法

CameraContext.takePhoto(options)

参数说明

options 为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
qualitystringnormal成像质量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

回调成功

属性类型说明
sizenumber本地文件大小(单位:B)
widthstring图片宽度(单位:px)
heightstring图片高度(单位:px)
tempImagePathstring照片文件的临时路径 (本地路径),Android 是 jpg 图片格式,iOS 是 png

回调失败

| 属性名 | 类型 | 说明 | | | | | | errMsg | string | "takePhoto:fail " + 详细错误信息 | | errNo | number | 错误码 |

错误说明

| 错误码 | 错误信息 | 错误描述 | | | | | | 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 | 扫码模式下不能调用 |

代码示例

开发者工具中预览

<!-- 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,
        });
      },
    });
  },
});

Bug & Tip

  • Tip:开发者工具暂不支持此能力,请用真机扫码调试。
点击纠错
该文档是否对你的开发有所帮助?
有帮助
没帮助
该文档是否对你的开发有所帮助?
有帮助
没帮助