收藏
回答

VKSession2D人体检测在iOS端发热后导致微信本体崩溃?

设备:iPhone14 pro max ios版本:17.6.1 微信版本:8.0.52

复现流程:

打开小程序示例小程序(官方demo),打开实时人体检测页面,对着一个人体拍,手机会慢慢发热,几分钟后微信和小程序会直接一起崩溃掉。在手机本身就比较热的情况下测试,会在相机画面出现的几秒种内直接崩溃掉。

另外,在安卓低中端机器上也会遇到发热导致的性能问题,但是只是有卡顿,没有遇到过崩溃的现象。

希望负责这个模块的大佬能优化下性能,起码对于iPhone14promax来说过热崩溃接受不了啊。

代码:

参考小程序示例小程序(官方demo)的源码。类似于下面这样:

// 创建session
const session = this.session = wx.createVKSession({
  track: {
    plane: {
      mode: 3
    },
    body: {
      mode: 1
    }
  },
  gl: this.gl,
  version: 'v1',
});
// 开启
session.start();
// 逐帧渲染
const onFrame = now => {
  const mill = now - last;
  // 经过了足够的时间
  if (mill >= fpsInterval) {
    //校正当前时间
    last = now;
    const frame = session.getVKFrame(canvas.width, canvas.height)
    if (frame) {
      this.render(frame)
    }
  }
  session.requestAnimationFrame(onFrame)
}
session.requestAnimationFrame(onFrame)

补充:

在iPhoneX 微信版本8.0.50 iOS版本16.7.10的机器也做了测试,持续了五分钟也没有崩溃,手机确实是在持续发热。

在iPhoneX机器上把微信版本更新到8.0.52后,机器发热的状况下仍然持续两分钟未闪退。由于我没有更多的测试机器,所以暂时只能怀疑ios版本17.6.1与iOS版本16.7.10的区别,导致的14promax闪退现象。

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

1 个回答

  • 小程序视觉技术yolo
    小程序视觉技术yolo
    10-14

    收到,方便的话提供下崩溃时间和微信号,我们这边查下日志确认下崩溃原因

    10-14
    有用
    回复 1
    • hch
      hch
      10-15
      微信号:FayeTone 时间:2024.10.15 11:01。我现在使用camera获取视频流+vksession单图识别的方式,已经没有复现崩溃的问题了。vksession流式的api内部控制了相机,是不是frame尺寸、帧率等参数过高?还有就是demo里用的webgl上屏,又走了一遍threejs,这一块儿我不了解但估计也有性能问题。建议demo里可以用camera+单图识别的例子,方便后来人参考,或者流式api添加帧率等参数控制。
      10-15
      回复
登录 后发表内容