Verwendung der Mobile Vision API mit TextureView und Camera

9

Ich verwende Mobile Vision API zum Scannen von Barcodes. Ich verwende TextureView , um die Kamera darauf zu rendern. Ich habe diesen GitHub-Thread Ссылка gelesen. Es scheint, dass Mobile Vision nicht mit TextureView

kompatibel ist

Ich sehe, dass CameraSource für SurfaceView ist, was nicht mit TextureView kompatibel ist, da es keine Methode gibt, Frames in TextureView in der Vorschau anzuzeigen. Ссылка

Ich habe versucht, unter Ansatz zu verwenden und überprüft, dass receiveDetections nicht aufgerufen wird. Hat jemand eine Idee, wie ich die Mobile Vision API mit TextureView und Camera integrieren kann.

MainActivity.java

%Vor%     
N Sharma 01.04.2017, 16:28
quelle

1 Antwort

3

Das Beispiel BarcodeReader Vision verwendet SurfaceView aus einem sehr einfachen Grund: Kompatibilität. SurfaceView ist ab API Level 1 verfügbar, TextureView ist jedoch ab API Level 14 verfügbar.

Glücklicherweise ist es möglich, einen BarcodeReader zu erstellen, der sowohl SurfaceView als auch TextureView unterstützt, ohne die Kompatibilität zu verlieren.

Ich weiß nicht mehr genau, wo genau, aber Google hat eine Klasse basierend auf TextureView erstellt, die das Verhalten verbessert, das gestreckte Bilder verhindert. Es heißt "AutoFitTextureView" und ich habe es für dich gemacht:

%Vor%

Nun können Sie diese neue Klasse anstelle von SurfaceView in der CameraSourcePreview-Klasse verwenden:

Sehen Sie sich die kommentierten Zeilen für SurfaceView an

%Vor%

Schließlich sollten Sie der CameraSource-Klasse eine neue start -Methode hinzufügen:

Beachten Sie, dass diese neue Methode von der CameraSourcePreview-Klasse

aufgerufen wird %Vor%

Jetzt haben Sie Ihren eigenen BarcodeReader mit Ihrer TextureView. Ich habe den ganzen Code getestet und an S4 Lollipop und Nexus5 Marshmallow gearbeitet.

Hoffnung hilft Ihnen!

    
Ezequiel Adrian 11.04.2017 21:53
quelle