平面 AR 追蹤器異常處理
這篇文章介紹瞭如何通過註冊回呼處理微信平面 AR 追蹤器的異常。
開始之前
通過MegaTracker 工作流瞭解:
- xr-frame 的平面AR追蹤器 本質上是 VisionKit 6DoF-平面能力的封裝。
- MegaTracker 是如何在 xr-frame 上工作的。
為什麼會出現平面檢測異常
在特定情況下(如畫面中出現大片白牆、攝像頭長時間被遮擋等),微信平面 AR 追蹤器可能出現狀態異常。
此時平面 AR 追蹤器無法正常輸出每幀的相機位姿(即 6DoF 數據)這會導致 MegaTracker 無法工作。
當畫面正常(紋理豐富,攝像頭不被遮擋)一段時間後平面 AR 追蹤器會恢復工作,同時 MegaTracker 也會恢復工作。
設置平面檢測異常時的行為
通過 setPlaneDetectionErrorBehavior(behavior) 註冊異常處理回呼。當檢測到異常時,該回呼會被觸發,開發者可在其中實現自定義提示,隱藏 3D 內容或其他處理邏輯。
session.setPlaneDetectionErrorBehavior(() => {
wx.showToast({
icon: 'none',
title: `微信平面檢測結果異常,請將相機對著平面來回移動以恢復跟踪`,
duration: 2000,
});
});
這個例子中使用 session 的 setPlaneDetectionErrorBehavior(behavior) 接口註冊了一個彈出 Toast 窗口的回呼,當平面檢測異常時觸發。