EffectCameraStream.stop
收藏
我的收藏

基础库 2.19.0 开始支持本方法,低版本需做兼容处理,这是一个同步方法。​
暂停相机的使用并停止更新数据,调用后若有其他数据流处理事件,则继续执行该处理逻辑到 stop 前的最后一帧(没有销毁底层相机图像缓冲区,只是不再更新数据)。通过 EffectCameraStream.onStop 可监听该请求成功事件。通过 EffectCameraStream.onError 可监听该请求失败事件。​

语法​

Plain Text
复制
EffectCameraStream.stop()

参数说明​

无​

返回值​

无​

代码示例​

预期表现:​
    依次点击【打开相机】-> 【关闭相机】出现相机关闭弹窗提示。​
    打开相机后点击【释放相机资源】,再次重复上述步骤,出现相机关闭弹窗提示。​
html
复制
<button type="primary" bindtap="requestEffectCamera">打开相机</button>
<button type="primary" bindtap="stopEffectCamera">关闭相机</button>
<button type="primary" bindtap="disposeEffectCamera">释放相机资源</button>
js
复制
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​

暂无。​