Android CameraX 遇到了两个用例
Android CameraX stuck with two use cases
我是 Android 开发的新手(更多 Python 和 ML 工程师)但想尝试 TensorFlow 中的这个示例:TF Lite Transfer Learning.
我在 Android Studio 上成功 运行 它,但发现我无法使用该应用程序执行任何操作,因为它的运行速度非常慢。我正在研究代码以找到根本原因并发现了这一点。
在函数 CameraFragment::startCamera()
中创建了预览上下文
PreviewConfig config = new PreviewConfig.Builder()
.setLensFacing(LENS_FACING)
.setTargetAspectRatio(screenAspectRatio)
.setTargetRotation(viewFinder.getDisplay().getRotation())
.build();
Preview preview = new Preview(config);
preview.setOnPreviewOutputUpdateListener(previewOutput -> {
ViewGroup parent = (ViewGroup) viewFinder.getParent();
parent.removeView(viewFinder);
parent.addView(viewFinder, 0);
以及我们可以保留为空的其他用例:
final ImageAnalysisConfig imageAnalysisConfig =
new ImageAnalysisConfig.Builder()
.setLensFacing(LENS_FACING)
.setTargetResolution(new Size(224, 224))
.setCallbackHandler(new Handler(inferenceThread.getLooper()))
.setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
.build();
final ImageAnalysis imageAnalysis2 = new ImageAnalysis(imageAnalysisConfig);
imageAnalysis2.setAnalyzer((image, rotationDegrees) -> { });
新的我们有一条线让他们栩栩如生:
CameraX.bindToLifecycle(this, preview, imageAnalysis2);
问题就在这里。如果我们这样保留它们,应用程序将无法使用。但是如果我们只保留一个(任何一个),我们可以使用该应用程序直到所有导航正常工作。你知道是什么导致了这种行为吗?
这个build.gradle
使用的是相当旧的版本;迁移到版本 1.0.0-beta01
.
我是 Android 开发的新手(更多 Python 和 ML 工程师)但想尝试 TensorFlow 中的这个示例:TF Lite Transfer Learning.
我在 Android Studio 上成功 运行 它,但发现我无法使用该应用程序执行任何操作,因为它的运行速度非常慢。我正在研究代码以找到根本原因并发现了这一点。
在函数 CameraFragment::startCamera()
中创建了预览上下文
PreviewConfig config = new PreviewConfig.Builder()
.setLensFacing(LENS_FACING)
.setTargetAspectRatio(screenAspectRatio)
.setTargetRotation(viewFinder.getDisplay().getRotation())
.build();
Preview preview = new Preview(config);
preview.setOnPreviewOutputUpdateListener(previewOutput -> {
ViewGroup parent = (ViewGroup) viewFinder.getParent();
parent.removeView(viewFinder);
parent.addView(viewFinder, 0);
以及我们可以保留为空的其他用例:
final ImageAnalysisConfig imageAnalysisConfig =
new ImageAnalysisConfig.Builder()
.setLensFacing(LENS_FACING)
.setTargetResolution(new Size(224, 224))
.setCallbackHandler(new Handler(inferenceThread.getLooper()))
.setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
.build();
final ImageAnalysis imageAnalysis2 = new ImageAnalysis(imageAnalysisConfig);
imageAnalysis2.setAnalyzer((image, rotationDegrees) -> { });
新的我们有一条线让他们栩栩如生:
CameraX.bindToLifecycle(this, preview, imageAnalysis2);
问题就在这里。如果我们这样保留它们,应用程序将无法使用。但是如果我们只保留一个(任何一个),我们可以使用该应用程序直到所有导航正常工作。你知道是什么导致了这种行为吗?
这个build.gradle
使用的是相当旧的版本;迁移到版本 1.0.0-beta01
.