收藏
回答

多次调用camera微信会崩溃

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug iOS 12.0.1 iPhone 8 6.7.3

WXML:

<camera wx:if="{{camera}}" style="height:400rpx;width:400rpx;left:50%; top:50%;margin-left:-200rpx;margin-top:-300rpx" device-position="front" flash="off" binderror="error" id="myCamera"></camera>
<cover-view class="cover" hidden="{{open}}">
  <cover-view class="confirm" hidden="{{!confirm_btn_visible}}">
    <cover-image src="../../common/image/confirm.png" mode='widthFix' />
    <cover-view class="msg">人脸识别成功</cover-view>
    <cover-view class="bottom_btn" bindtap="confirm">确认</cover-view>
  </cover-view>
</cover-view>


JS:


//获取应用实例
const app = getApp()
 
Page({
  onReady() {
    // app.loading(false)
  },
  onLoad(op) {
    var ctx = wx.createCameraContext();
    this.handleAuth(ctx, this)
     
  },
  handleAuth(ctx, me) {
    wx.getSetting({
      success(result) {
        result && result.authSetting['scope.camera'] ? me.takePhoto(ctx) : wx.authorize({
          scope: 'scope.camera',
          success(result) {
            console.log('wx.authorize succeed')
            me.takePhoto(ctx)
          },
          fail(result) {
            app.toast('授权失败')
          }
        })
      }
    })
 
  },
  takePhoto: function(ctx) {
    let me = this
    me.setData({
      discernVisible: true
    })
    ctx.takePhoto({
      success: function(photo) {
        me.facecPhoto(ctx, photo.tempImagePath)
      },
      fail: function(error) {
        console.log('Take photo error:' + JSON.stringify(error || 'uncatch exception'))
      }
    })
  },
  facecPhoto(ctx, facePhoto) {
    let me = this
    ajax(app.api.facecPhoto, function(result) {
      if (result.statusCode == 200) {
 
      } else {
        me.takePhoto(ctx)
      }
    })
  }

})



多次进入这个页面后调用camera, 微信会崩溃,是否是返回上一个页面camera没有释放或者其它原因,请问如何解决?

最后一次编辑于  2018-10-15
回答关注问题邀请回答
收藏

5 个回答

  • 烦躁的时候,就数数兜里的毛爷爷
    烦躁的时候,就数数兜里的毛爷爷
    2018-12-04

    后来呢?持续关注中,没有结论怎么就停在这里了?坐等官方回复以解决,本人已被逼疯。

    2018-12-04
    有用 2
    回复 1
    • 四九
      四九
      2021-12-02
      同感,光有问题,没回复也是醉了,看一个帖子,是问题,再看一个还是问题,光有问题没有解决办法,真是服了
      2021-12-02
      1
      回复
  • 汪曐
    汪曐
    2018-12-18

    这个问题还是会有,iOS上真的是100%闪退(老板因为这个都快把我弄死了),只能在加载相机组件的时候尽可能减少消耗内存的操作,如果在onload初始化相机组件,在onshow里面用setInterval来做定时拍照能的话也会100%闪退,用setTimeout来模拟setInterval就不会闪退了,希望能赶紧解决吧

    2018-12-18
    有用
    回复 1
    • 2019-01-14

      我用的就是setTimeout还是会闪退

      2019-01-14
      回复
  • 风
    2018-10-22

    这个问题得到解决了吗。我这也是相同型号的手机和微信版本号调用前置摄像头会出现闪退

    2018-10-22
    有用
    回复 3
    • 凶得批爆
      凶得批爆
      2018-10-22

      我最后延迟加载camera起作用了,device-position也要先用默认的然后延时设置


      2018-10-22
      回复
    • 2019-01-14回复凶得批爆

      我是延迟调用拍照还是会闪退

      2019-01-14
      回复
    • 凶得批爆
      凶得批爆
      2019-02-18回复

      只能用按钮调转摄像头

      2019-02-18
      回复
  • FinallyScholar
    FinallyScholar
    2018-10-16

    请问楼主,你在调用相机之前,设置

    sizeType: ['original', 'compressed'],时,在返回值里面能否拿到原图的文件路径,他默认是压缩图的


    2018-10-16
    有用
    回复 1
    • Brody Liao
      Brody Liao
      2018-10-16

      sizeType: ['original'], 这个就可以拿到原图,地址是微信格式的

      2018-10-16
      回复
  • 灵芝
    灵芝
    2018-10-15

    请提供出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2018-10-15
    有用
    回复 17
    查看更多(12)
登录 后发表内容