# VKSession wx.createVKSession(Object object)

基础库 2.20.0 开始支持,低版本需做兼容处理

小程序插件:支持,需要小程序基础库版本不低于 2.20.0

# 功能描述

创建 vision kit 会话对象。详见指南

# 参数

# Object object

属性 类型 默认值 必填 说明 最低版本
version string vision kit 版本。 2.22.0
合法值 说明
v1 v1适用于用户在平面场景下,例如桌面,地面,泛平面场景,放置虚拟物体,不提供真实世界距离。用户放置物体时,手机相机倾斜向下对着目标平面点击即可,具有广泛的机型支持
v2 v2提供真实物理距离的 ar 定位功能,提供平面识别功能,用户在平面范围点击放置虚拟物体的功能,具有有限的机型支持。iOS 设备在基础库 2.22.0 开始支持v2。安卓设备在基础库 2.25.1 开始支持v2,另外,安卓v2不支持竖直平面。**使用v2算法需要初始化,移动手机进行左右平移初始化效果最佳。**
track Object 跟踪能力配置,目前不同的跟踪能力之间是互斥的,默认使用平面跟踪能力。需要注意目前 track 中不同的跟踪配置存在互斥关系(比如 marker 跟踪配置和 OSD 跟踪配置不能同时存在),请按需配置。
结构属性 类型 默认值 必填 说明 最低版本
plane Object 平面跟踪配置
结构属性 类型 默认值 必填 说明 最低版本
mode number 平面跟踪配置模式
合法值 说明 最低版本
1 检测横向平面
2 检测纵向平面,只有 v2 版本支持 2.22.0
3 检测横向和纵向平面,只有 v2 版本支持 2.22.0
force boolean 是否开启强制使用V2的模式,只有 v2 版本支持 3.6.5
marker boolean marker 跟踪配置,基础库(3.0.0)开始允许同时支持v2的水平面检测能力 2.24.5
OSD boolean OSD 跟踪配置 2.24.5
depth Object 深度识别配置。用法详情指南文档 3.0.0
结构属性 类型 默认值 必填 说明 最低版本
mode number 深度识别模式 3.0.0
合法值 说明 最低版本
1 通过摄像头实时检测 3.0.0
2 静态图片检测 3.0.0
face Object 人脸检测配置。用法详情指南文档。安卓微信8.0.25开始支持,iOS微信8.0.24开始支持。 2.25.0
结构属性 类型 默认值 必填 说明 最低版本
mode number 人脸检测模式 2.25.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.25.0
2 静态图片检测 2.25.0
OCR Object OCR检测配置。用法详情指南文档 2.27.0
结构属性 类型 默认值 必填 说明 最低版本
mode number OCR检测模式 2.27.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.27.0
2 静态图片检测 2.27.0
IDCard Object 身份证检测配置。用法详情指南文档 3.3.0
结构属性 类型 默认值 必填 说明 最低版本
mode number 身份证检测模式 3.3.0
合法值 说明 最低版本
2 静态图片检测 3.3.0
body Object 人体检测配置。用法详情指南文档 2.28.0
结构属性 类型 默认值 必填 说明 最低版本
mode number 人体检测模式 2.28.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.28.0
2 静态图片检测 2.28.0
hand Object 手势检测配置。用法详情指南文档 2.28.0
结构属性 类型 默认值 必填 说明 最低版本
mode number 手势检测模式 2.28.0
合法值 说明 最低版本
1 通过摄像头实时检测 2.28.0
2 静态图片检测 2.28.0
shoe Object 鞋部检测配置。用法详情指南文档 3.2.1
结构属性 类型 默认值 必填 说明 最低版本
mode number 鞋部检测模式 3.2.1
合法值 说明 最低版本
1 通过摄像头实时检测 3.2.1
threeDof boolean 提供基础AR功能,输出相机旋转的3个自由度的位姿,利用手机陀螺仪传感器,实现快速稳定的AR定位能力,适用于简单AR场景。 2.28.0
gl WebGLRenderingContext 绑定的 WebGLRenderingContext 对象 2.23.0

# 返回值

# VKSession

vision kit 会话对象。错误码参考 错误码列表

# 示例代码

v1 版本:VisionKit基础能力使用参考 v2 版本:VisionKit-v2基础能力使用参考

// 以下 demo 以 v2 为例
// 创建 session 对象
const ssession = wx.createVKSession({
  track: {
    plane: {mode: 3},
  },
  version: 'v2',
  gl, // WebGLRenderingContext
})

// 逐帧分析
const onFrame = timestamp => {
  // 开发者可以自己控制帧率
  const frame = session.getVKFrame(canvasWidth, canvasHeight)
    if (frame) {
      // 分析完毕,可以拿到帧对象
      doRender(frame)
    }

  session.requestAnimationFrame(onFrame)
}
session.start(err => {
  if (!err) session.requestAnimationFrame(onFrame)
})

// 渲染函数
const doRender = frame => {
  // ...
}