开发
API

EffectCameraStream.request

基础库 2.19.0 开始支持本方法。 该 API 调用时会弹出相机授权弹窗,需要用户授权方可调用。

设置数据源(相机)参数,并请求相机资源,用户授权后将占用相机资源。通过 EffectCameraStream.onRequest 可监听该请求成功事件。通过 EffectCameraStream.onError 可监听请求失败事件。

因该 API 将占用相机资源,如需再次开启相机或插入 camera 组件,请调用 EffectCameraStream.dispose 释放相机资源后再执行此操作。

语法

EffectCameraStream.request(options)

参数说明

options为 object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
orientationstring'back'摄像头朝向,有效值 'back' 或 'front'2.19.0

返回值

代码示例

<button type="primary" bindtap="requestEffectCamera">打开特效相机</button>
Page({
  onShow: function (options) {
    this.effectCameraStream = tt.createEffectCameraStream(this);
    this.effectCameraStream.onError(this.onError);
    this.effectCameraStream.onRequest(this.onRequest);
    this.effectCameraStream.onPlay(this.onPlay);
  },
  requestEffectCamera() {
    this.effectCameraStream.request({
      orientation: "front",
    });
  },
  onError(error) {
    console.log("onError", error);
    const { type, errMsg } = error;
    tt.showModal({
      title: `onError ${type}`,
      content: errMsg,
    });
  },
  onRequest() {
    console.log("相机资源申请成功");
    this.effectCameraStream.play();
  },
  onPlay(cameraVideo) {
    tt.showToast({
      title: "相机打开", // 内容
    });
    console.log("相机数据对象", cameraVideo);
  },
});

Bug & Tip

  • Tip:暂不支持指定相机配置参数,默认分辨率为 720P。
  • Tip:该 API 调用成功后将占用相机资源,释放前无法再次调用。
点击纠错
评价此篇文档