Ich versuche, ein einfaches Vuforia-Bild von HoloLens zu einer Funktion zu bekommen, die QRCodes in Text konvertiert (via ZXing). Ich habe die ZXing-Bibliothek importiert und beim Durchlesen ähnlicher Implementierungen festgestellt, dass die folgende Implementierung in ihrer einfachsten Form ist.einfache Vuforia zu HoloLens
Es ist eigentlich ganz einfach, sind die Schritte
- Start durch den Barcode-Objekt
- die Kamera
der QRcode Text Wert senden zu trösten
using UnityEngine; using System; using System.Collections; using UnityEngine.UI; using Vuforia; using ZXing; public class HelloWorldV2 : MonoBehaviour { private bool cameraInitialized; private BarcodeReader barReader; void Start() { GameObject sometext = GameObject.Find("Text"); Text txt = sometext.GetComponent<Text>(); txt.text = "Right before BarReader"; barReader = new BarcodeReader(); txt.text = "Right after BarReader"; //NEVER GETS HERE! StartCoroutine(InitializeCamera()); } private IEnumerator InitializeCamera() { // Waiting a little seem to avoid the Vuforia's crashes. yield return new WaitForSeconds(1.25f); var isFrameFormatSet = CameraDevice.Instance.SetFrameFormat(Vuforia.Image.PIXEL_FORMAT.RGB888, true); Debug.Log(String.Format("FormatSet : {0}", isFrameFormatSet)); // Force autofocus. var isAutoFocus = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO); if (!isAutoFocus) { CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_NORMAL); } Debug.Log(String.Format("AutoFocus : {0}", isAutoFocus)); cameraInitialized = true; } private void Update() { if (cameraInitialized) { try { var cameraFeed = CameraDevice.Instance.GetCameraImage(Vuforia.Image.PIXEL_FORMAT.RGB888); if (cameraFeed == null) { return; } var data = barReader.Decode(cameraFeed.Pixels, cameraFeed.BufferWidth, cameraFeed.BufferHeight, RGBLuminanceSource.BitmapFormat.RGB24); if (data != null) { // QRCode detected. Debug.Log(data.Text); } else { Debug.Log("No QR code detected !"); } } catch (Exception e) { Debug.LogError(e.Message); } } } }
So tritt das Problem einfach auf den Konstruktor Aufruf t o BarcodeReader()
. Ich bin mir nicht sicher, wie das passieren würde. Warum sollte ein einfacher Konstruktoraufruf fehlschlagen?
Der einzige andere Hinweis, den ich bin von einer Debug-Sitzung bekommen ist folgende:
FileLoadException: Could not load file or assembly 'System.Core,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of
its dependencies. The located assembly's manifest definition does not match
the assembly reference. (Exception from HRESULT: 0x80131040)
at ZXing.BarcodeReader..ctor()
at HelloWorldV2.Start()
Kann jemand das Problem durch eine Emulator Visual Studio replizieren? (Beachten Sie, funktioniert dies in der Einheit, wenn der FrameFormats ersetzt in Graustufen