如何在 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-api
或 camera2-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())
我正在我的应用程序中使用 CameraX
并且想在构建视频稳定功能中使用,但我不知道该怎么做?
如 Camera.Parameters 中所述,我们可以使用 public void setVideoStabilization (boolean toggle)
、public boolean isVideoStabilizationSupported ()
和 public boolean getVideoStabilization ()
三种方法进行实时视频稳定,但我没有找不到在 CameraX 中使用这些功能的任何参考资料。如果 CameraX
不可行,那么我应该使用 Camera2
吗?
我认为使用 cameraX 不能设置这些参数,您需要使用 camera-api
或 camera2-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())