收藏
回答

调用detectFace接口小程序为什么就直接闪退?

调用VKSession.start返回的结果是个null,调用detectFace接口小程序就直接闪退了

<template>

<view class="content">

<image class="logo" src="/static/logo.png" @tap="getBody"></image>

<view class="container page">

<view>

<canvas type="webgl" id="webgl" style="width: 400rpx; height: 400rpx"></canvas>

</view>

</view>

</view>

</template>


<script>

export default {

data() {

return {

title: 'Hello',

data: {}

}

},

onLoad() {


},

methods: {

getBody() {

let ArrayBuffer

let width = 480

let height = 640

uni.chooseImage({

count: 6, //默认9

sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有

sourceType: ['album'], //从相册选择

success: function (res) {

// 获取图片信息

uni.getImageInfo({

  src: res.tempFilePaths[0],

  success: function(rep) {

// 读取图片文件

uni.getFileSystemManager().readFile({

  filePath: res.tempFilePaths[0],

  encoding: 'base64',

  success: function(res2) {

// 将base64格式的图片数据保存到变量中

var base64Data = res2.data;

ArrayBuffer = uni.base64ToArrayBuffer(base64Data)

const session = wx.createVKSession({

  track: {

    face: { mode: 2 } // mode: 1 - 使用摄像头;2 - 手动传入图像

  },

})

// 静态图片检测模式下,每调一次 detectFace 接口就会触发一次 updateAnchors 事件

session.on('updateAnchors', anchors => {

  anchors.forEach(anchor => {

    console.log('anchor.points', anchor.points)

    console.log('anchor.origin', anchor.origin)

    console.log('anchor.size', anchor.size)

    console.log('anchor.angle', anchor.angle)

  })

})

// 需要调用一次 start 以启动

session.start(errno => {

console.log('开启回话回调: ',  errno)

  if (errno) {

    // 如果失败,将返回 errno

  } else {

    // 否则,返回null,表示成功

    // session.detectFace({

    //   ArrayBuffer, // 图片 ArrayBuffer 数据。人脸图像像素点数据,每四项表示一个像素点的 RGBA

    //   width, // 图像宽度

    //   height, // 图像高度

    //   scoreThreshold: 0.5, // 评分阈值

    //   sourceType: 1,

    //   modelMode: 1,

    // })

  }

})

  },

  fail: function(err) {

console.log(err);

  }

});

  },

  fail: function(err) {

console.log(err);

  }

});

}

});

},

}

}

</script>


<style>

.content {

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

}


.logo {

height: 200rpx;

width: 200rpx;

margin-top: 200rpx;

margin-left: auto;

margin-right: auto;

margin-bottom: 50rpx;

}


.text-area {

width: 100%;

display: flex;

justify-content: center;

}


.title {

font-size: 36rpx;

color: #8f8f94;

}

</style>


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

1 个回答

登录 后发表内容