开发
API

EffectCameraStream.stop

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

暂停相机的使用并停止更新数据,调用后若有其他数据流处理事件,则继续执行该处理逻辑到 stop 前的最后一帧(没有销毁底层相机图像缓冲区,只是不再更新数据)。通过 EffectCameraStream.onStop 可监听该请求成功事件。通过 EffectCameraStream.onError 可监听该请求失败事件。

语法

EffectCameraStream.stop()

参数说明

返回值

代码示例

预期表现:

  • 依次点击【打开相机】-> 【关闭相机】出现相机关闭弹窗提示。
  • 打开相机后点击【释放相机资源】,再次重复上述步骤,出现相机关闭弹窗提示。
<button type="primary" bindtap="requestEffectCamera">打开相机</button>
<button type="primary" bindtap="stopEffectCamera">关闭相机</button>
<button type="primary" bindtap="disposeEffectCamera">释放相机资源</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);
    this.effectCameraStream.onStop(this.onStop);
  },
  requestEffectCamera() {
    this.effectCameraStream.request({
      orientation: "front",
    });
  },
  stopEffectCamera() {
    if (this.effectCameraStream) {
      this.effectCameraStream.stop();
    }
  },
  disposeEffectCamera() {
    if (this.effectCameraStream) {
      this.effectCameraStream.dispose();
      this.effectCameraStream = null;
      tt.showToast({
        title: "相机资源释放",
      });
    }
  },
  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);
  },
  onStop() {
    tt.showToast({
      title: "相机关闭", // 内容
    });
  },
});

Bug & Tip

暂无。

点击纠错
评价此篇文档