Camera2 API未返回全部相机时,部分APP如何调用超广角及实现防抖?
相机API相关问题
1. 第三方APP如何在非三星设备上访问超广角镜头
我有多款三星设备(最高至S22 Ultra),通过CameraManager.cameraIdList可获取4个相机,包含后置主摄与超广角镜头,调用超广角十分便捷。但小米、vivo等多数其他设备仅返回前后两个常规相机。然而用户反馈,mcpro24fps、gcam等APP可在小米POCO X3(Android 11)这类设备上使用超广角镜头,请问这类APP是如何实现全相机访问的?
更新推测:这类APP可能通过设置变焦比例参数调用超广角镜头:
captureRequestBuilder.set(CaptureRequest.CONTROL_ZOOM_RATIO, 0.6f)
该方法在我的三星设备上生效,0.6至10的变焦比例可无需切换相机ID实现镜头切换。
2. 第三方APP如何实现Camera2 API未开放的有效视频防抖
Camera2 API通常显示不支持视频防抖(厂商未通过该API开放此功能),以下检测代码中supported值通常为false:
val characteristics = getCameraCharacteristics(context, cameraIdx) val modes = characteristics.get(CameraCharacteristics.CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES) ?: intArrayOf() val supported = CameraMetadata.CONTROL_VIDEO_STABILIZATION_MODE_ON in modes
即便部分设备返回true,根据用户反馈,视频防抖也未实际生效,无画面裁剪等效果,因此以下开启防抖的代码并无作用:
if (isVideoStabilizationSupported()) { captureRequestBuilder.set( CaptureRequest.CONTROL_VIDEO_STABILIZATION_MODE, CameraMetadata.CONTROL_VIDEO_STABILIZATION_MODE_ON ) }
但mcpro24fps与gcam却可实现有效防抖,疑似采用自定义方案,请问如何在Camera2 API下实现不影响性能的底层自定义方案?
内容的提问来源于stack exchange,提问作者user924
相关产品推荐
相关产品推荐

