Dienstag, 22. Juli 2014

Windows Phone 8.1 Barcode Scanner mit ZXing.Net

Im voran gegangen Post Windows 8.1 Barcodescanner App mit ZXing.Net von mir, habe ich darauf hingewiesen das unter Windows Phone 8.1, uns der CameraCatureUI Dialog nicht zur Verfügung steht und aus diesem Grund die Methoden der MediaCature Klassen verwendet werden müssten.

Hier nun das Beispiel unter Windows Phone 8.1. Dieses Vorgehen kann auch unter Windows 8.1 in einer Windows Store App verwendet werden.

Zu beginn müssen wir die das MediaCature Objekt initialisieren und ein paar Einstellung vornehmen.
 















Um die richtig Kamera Id zu erhalten, verwende ich die folgende Methode diese ermittelt anhand gewünschten Kamera Position die Id. Sollte es keine Rückwertige Kamera geben wird die erste gefunden verwendet.









Anschließend kann wie hier im Beispiel eine Vorschau gestartet werden und auf ein Event Reagiert werden mit dem wir das Bild dann an unsere Barcode Scanner Klasse (siehe Windows 8.1 Barcodescanner App mit ZXing.Net ) übergeben.













Es ist äußerst wichtig das wir das MediaCapture-Objekt und verwandte Objekte beim Anhalten der App korrekt beenden und löschen. Andernfalls können andere Apps, die auf die Kamera des Gerätes zugreifen, gestört werden.

Daher ist es am besten für diese zwecke das MediaCapture-Objekt und das verwendete Vorschau CaptureElement als öffentliche Eigenschaften in der app.xaml.cs zu deklarieren. Im OnSuspending Ereignishändler rufen wie dann die entsprechend CleanUpCatureResouces Methode auf.

























Ich wünsche euch viel Spaß beim selber ausprobieren und bis zum nächsten mal.

3 Kommentare:

  1. Sehr nette erklärung, jedoch habe ich 2 Fragen:
    Barcode Proxy, unter welchen pfad des zXing finde ich den?
    Beim Task CleanupCaptureResources nörgelt er immer über MediaCapture: "Ist Typ und im angegebenem Kontext nicht gültig"

    AntwortenLöschen
    Antworten
    1. Hallo DaPete89,

      gerne beantworte ich dir deine Fragen:

      Wo kommt BarcodeProxy her?
      Das ist eine klasse von mir kann aber gerne das Listing noch mal hier veröffentlichen.

      Beziehungsweise das Projekt als Beispiel zukommen lassen wenn du das möchtest.

      Löschen
    2. Schau einfach mal bei GitHup

      https://github.com/CarstenCors/BarcodeReader

      Löschen