Ausnahmebehandlung für plane AR tracker
Dieser Artikel beschreibt, wie Ausnahmen des WeChat plane AR tracker durch Registrierung von callbacks behandelt werden.
Bevor Sie beginnen
Lernen Sie über den MegaTracker workflow:
- Der xr-frame plane AR tracker ist im Wesentlichen ein Wrapper der VisionKit 6DoF plane-Fähigkeit.
- Wie MegaTracker auf xr-frame funktioniert.
Informieren Sie sich über Konzept und Ablauf von AR Session
Warum Ausnahmen bei plane detection auftreten
In bestimmten Situationen, etwa wenn eine große weiße Wand im Bild erscheint oder die Kamera lange verdeckt ist, kann der WeChat plane AR tracker einen abnormalen Zustand erreichen.
In diesem Moment kann der plane AR tracker die camera pose jedes frame, also 6DoF-Daten, nicht normal ausgeben, wodurch MegaTracker nicht funktionieren kann.
Nachdem das Bild für eine gewisse Zeit wieder normal ist, mit reichhaltiger texture und nicht verdeckter Kamera, nimmt der plane AR tracker die Arbeit wieder auf, und MegaTracker funktioniert ebenfalls wieder.
Verhalten bei abnormaler plane detection festlegen
Registrieren Sie über setPlaneDetectionErrorBehavior(behavior) einen callback zur Ausnahmebehandlung. Wenn eine Ausnahme erkannt wird, wird dieser callback ausgelöst, und Entwickler können darin benutzerdefinierte Hinweise implementieren, 3D-Inhalte ausblenden oder andere Behandlungslogik ausführen.
session.setPlaneDetectionErrorBehavior(() => {
wx.showToast({
icon: 'none',
title: `微信平面检测结果异常,请将相机对着平面来回移动以恢复跟踪`,
duration: 2000,
});
});
In diesem Beispiel wird die interface setPlaneDetectionErrorBehavior(behavior) von session verwendet, um einen callback zu registrieren, der ein Toast-Fenster öffnet und bei abnormaler plane detection ausgelöst wird.