使用CameraX进行远距离镜头缩放拍摄

3
在我的应用程序中,缩放仅限于设备的主镜头,而不是长焦镜头(如果有的话)。
长焦镜头可以由任何制造商提供;我不希望实现特定于制造商设备的API以访问长焦或广角镜头。
这会导致图片效果不佳,并且该应用程序无法超过主摄像头的缩放限制进一步缩放。
如何在我的应用程序中使用长焦镜头(如果可能的话,还要使用广角镜头)进行缩放?
谢谢。
1个回答

3

CameraX无法提供你所需的相机/镜头。你可以将缩放级别设置为最小值并希望得到最好的效果。你可以尝试使用Camera2,但也不能保证成功。


理论上,如果将缩放比例设置为1.0f以下的值,则CameraX应该使用广角相机。然而,实际上,除了Pixel 6之外,我从未见过其他设备支持这一功能。即使是Google Pixel也无法实现必要的功能以支持第三方相机应用程序使用CameraX。如果你想检查,这就是你可以设置最小可用缩放的方式:在大多数设备中,你会发现最小缩放比例为1.0f,而在Pixel 6中则为约0.7f。

val maxAvailableZoom = camera?.cameraInfo?.zoomState?.value?.maxZoomRatio
val minAvailableZoom = camera?.cameraInfo?.zoomState?.value?.minZoomRatio ?: 1f
camera?.cameraControl?.setZoomRatio(minAvailableZoom)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接