如何在 CameraX 中设置视频稳定参数?

How to set Video Stabilisation parameter in CameraX?

我正在我的应用程序中使用 CameraX 并且想在构建视频稳定功能中使用,但我不知道该怎么做?

Camera.Parameters 中所述,我们可以使用 public void setVideoStabilization (boolean toggle)public boolean isVideoStabilizationSupported ()public boolean getVideoStabilization () 三种方法进行实时视频稳定,但我没有找不到在 CameraX 中使用这些功能的任何参考资料。如果 CameraX 不可行,那么我应该使用 Camera2 吗?

我认为使用 cameraX 不能设置这些参数,您需要使用 camera-apicamera2-api

以下是Camera2

STABILIZATION模式的使用方法
...
captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
//Either of these two mode you can use one. 
captureRequestBuilder.set(CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE, CameraMetadata.CONTROL_VIDEO_STABILIZATION_MODE_ON);

captureRequestBuilder.set(CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE,CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE_ON);

你可以找到这些模式的解释here

实际上和技术上,您可以使用最新的 CameraX 做到这一点。但是您必须仅将非 public(还?)API 用于 LIBRARY_GROUP。 以下是我如何在我的应用中禁用稳定性:

val configBuilder = Camera2ImplConfig.Builder()
configBuilder.setCaptureRequestOption(
                CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE,
                CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE_OFF
)
    
configBuilder.setCaptureRequestOption(
                CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE,
                CaptureRequest.LENS_OPTICAL_STABILIZATION_MODE_OFF
)
...
...
//After you bound your use cases
(camera.cameraControl as Camera2CameraControlImpl).addInteropConfig(configBuilder.build())