开发
API

tt.createCameraContext

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

创建并返回 camera 上下文 CameraContext 对象,cameraContext 与页面的 camera 组件绑定,一个页面只能有一个 camera ,通过它可以操作对应的组件。该 API 能力需通过 tt.authorize 申请授权后方可使用。

语法

tt.createCameraContext()

参数说明

返回值

CameraContext

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

<!-- index.ttml -->
<camera class="camera" device-position="back" flash="off" binderror="onError"></camera>
<button type="primary" bindtap="createContext">授权并创建cameraContext</button>
<button type="primary" bindtap="setZoom">设置缩放级别</button>
// index.js
Page({
  onError(e) {
    tt.showModal({
      title: "相机出错",
      content: JSON.stringify(e),
      showCancel: false,
    });
  },
  createContext() {
    tt.getSetting({
      success: (res) => {
        let cameraAllowed = res.authSetting["scope.camera"];
        if (cameraAllowed) {
          this.ctx = tt.createCameraContext();
        } else {
          tt.showToast({
            title: "请授权相机后重新进入", // 内容
            success: (res) => {
              this.auth();
            },
          });
        }
      },
      fail: (err) => {
        tt.showModal({
          title: "获取授权失败",
          content: JSON.stringify(err),
        });
      },
    });
  },
  auth() {
    tt.authorize({
      scope: "scope.camera",
      success: () => {
        tt.showToast({
          title: "授权成功",
          success() {
            tt.reLaunch({
              url: "/pages/index/index", // 授权成功后重新进入当前页面
            });
          },
        });
      },
      fail: (err) => {
        tt.showModal({
          title: "授权失败",
          content: JSON.stringify(err),
        });
      },
    });
  },
  setZoom() {
    this.ctx.setZoom({
      zoom: 8,
      success(res) {
        tt.showToast({
          title: `设置 zoom 为: ${res.zoom}`,
        });
      },
      fail(err) {
        tt.showModal({
          content: `设置缩放失败: ${JSON.stringify(err)}`,
        });
      },
    });
  },
});

Bug & Tip

  • Tip:开发者工具暂不支持此能力,请用真机扫码调试。
点击纠错
评价此篇文档