获取 CameraX 最终分辨率

Fra*_*zoa 6 java android android-camerax

刚刚使用 CameraX 在 Android 中创建了一个相机预览,配置如下:

    PreviewConfig previewConfig = new PreviewConfig.Builder()
            .setLensFacing(CameraX.LensFacing.FRONT)
            .setTargetResolution(new Size(720, 720))
            .build();
    Preview preview = new Preview(previewConfig);
Run Code Online (Sandbox Code Playgroud)

现在,问题是这样的目标分辨率可能不可用,在这种情况下,预览将选择与请求的分辨率接近的分辨率。我在这里问的是一种了解预览有效选择了哪种分辨率的方法。

提前致谢!

Mar*_*Bak 5

实际上这是可能的。在对cameraProvider调用bindToLifecycle之后,我在挖掘了一些源代码后发现:

camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, previewUseCase, imageCaptureUseCase, analyzerUseCase)
Run Code Online (Sandbox Code Playgroud)

您将能够检索为每个适用用例选择的分辨率:

val captureSize = imageCaptureUseCase.attachedSurfaceResolution ?: Size(0, 0)
val previewSize = previewUseCase.attachedSurfaceResolution ?: Size(0, 0)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • `attachedSurfaceResolution` 现在受到库限制,我们可以使用它来抑制警告,但我们可能应该要求一个新的公共 API (2认同)