android - 如何在 Android 上使用 CameraX 获取可用分辨率?

标签 android android-camerax

有没有办法使用 CameraX 查询可用的相机分辨率? ?与 Camera2这可以使用 StreamConfigurationMap.getOutputSizes() .但是,我找不到使用 CameraX 的方法。 .

documentation 无济于事已经过时了。目前它引用版本 1.0.0-alpha06并且许多 API 在最新的 1.0.0-beta01 中发生了变化.

编辑:

有一种方法可以使用 Camera2 获得可用的分辨率。 API(感谢以下 Wasim 的回答)。但是,这只有在相机绑定(bind)到生命周期后才有可能,因此无法再更改目标分辨率,这使得它非常无用。

当然,我可以在不知道可用分辨率的情况下指定目标分辨率,但这样我就无法控制结果的纵横比。就我而言,我最终得到 16:9 Preview和 4:3 ImageAnalysis虽然 targetResolution对于我的ImageAnalysis为 16:9 (224x126)。

作为记录,这是您获得输出大小的方式:

val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalyzer)
val cameraId = Camera2CameraInfo.extractCameraId(camera.cameraInfo)
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
val outputSizes = streamConfigurationMap.getOutputSizes(format)

仍在寻找实际的解决方案。提前致谢。

最佳答案

这可以帮助任何在这里搜索的人。
Android CameraX,获取CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE等相机特征。
对于 2021 年,语法就像...
所以,你已经完成了获取相机的过程......

theCamera = cameraProvider.bindToLifecycle((LifecycleOwner)this,
              yourCameraSelector, yourImageAnalysis, yourPreview);
现在的代码是:
CameraCharacteristics camChars = Camera2CameraInfo
   .extractCameraCharacteristics(theCamera.getCameraInfo());
float discoveredMinFocusDistance = camChars
   .get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
你可能需要一个
@SuppressLint("UnsafeExperimentalUsageError")
CameraCharacteristics camChars =  ...
对于第一行。

关于android - 如何在 Android 上使用 CameraX 获取可用分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60901831/

相关文章:

android - flutter中DropdownButtonFormField选择列表的边框半径

java - 在应用程序退出时显示广告 (revmob)

java - Android相机应用程序使用CameraX将图像保存为YUV_420_888格式

android - 如何在 CameraX 中镜像 PreviewView?

android - CameraX 配置不正确。最可能的原因是您没有在构建中包含默认实现,例如“camera-camera2”

java - 如何清除ListView选择?

java - 具有水平滚动的 ListView

android - 如果在 OnCreateView 之外使用,findViewById 返回 null

android - ImageAnalysis.Analyzer 只触发一次

android - CameraX cameraView 和 previewView