收藏
回答

Camera组件调用CameraContext.stopRecord()闪退了?

// 代码简单展示如下

let per = await this.$tool.util.validatePermission();
this.$tool.log.d("权限信息为-per=", per);
let {flag} = per;
if (flag === 'cancel') {
    this.$tool.ui.toast('您已拒绝开启相应权限,请打开后再试!');
    this.hintMes = "您已拒绝开启相应权限,请打开后再试!";
    return;
} else if (flag === 'openSetting') {
    // 打开设置-直接重置页面
    this.hintMes = "若您已经开启了权限,请点击开始按钮!";
    this.isOpenSetting = true;
    return;
}
// 正式开始校验
this.isAuthNow = true;
this.beginCount();
if (this.$verify.isEmpty(this.cameraContext)) {
    this.cameraContext = uni.createCameraContext();
}
this.cameraContext.startRecord({
    fail: error => {
        this.showError(error.message || '相机开启失败!');
    }
});


beginCount() {
    if (this.interval != null) {
        return;
    }
    const vue = this;
    this.recordCount = 5;
    this.interval = setInterval(() => {
        vue.recordCount--;
        if (vue.recordCount <= 0) {
            this.$tool.ui.loading('视频压缩..');
            this.stopVideo();
            // this.uploadAuthVideo("xxxx");
            this.clearTimer();
        }
    }, 1000);
},
stopVideo() {
    if (this.$verify.isEmpty(this.cameraContext)) {
        this.cameraContext = uni.createCameraContext();
    }
    this.cameraContext.stopRecord({
        compressed: true,
        success: res => {
            this.$tool.log.d("stopVideo-success-res", res);
            this.cameraVisible = false;
            this.uploadAuthVideo(res.tempVideoPath);
        },
        fail: res => {
            this.$tool.log.d("stopVideo-fail-res", res);
            this.showError(res.message || '相机关闭失败');
        }
    });
},


测试反馈,在结束录制的过程中会有闪退的情况,具体机型参数如下:

华为手机p30 pro 微信版本v8.0.21 概率1天2次左右

回答关注问题邀请回答
收藏

1 个回答

  • Cjiang
    Cjiang
    2022-04-12

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),并详细描述下复现的流程。

    麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点(具体到分钟)。

    2022-04-12
    有用
    回复
登录 后发表内容