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
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.
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!
Tags und Links android android-vision google-vision android-textureview