应用设置CONTROL_SCENE_MODE_FACE_PRIORITY设置不生效
问题:
app 代码
CaptureRequest.Builder captureRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);builder.set(CaptureRequest.CONTROL_SCENE_MODE, CameraMetadata.CONTROL_SCENE_MODE_FACE_PRIORITY);
这样设置完成以后 ,发现scene一直是0,正常应该是18
底层关于Scene如下
\HLOS\vendor\qcom\proprietary\chi-cdk\api\common\chituningmodeparam.h
enum class ChiModeSceneSubModeType
{None = 0,Landscape = 1,Snow = 2,Beach = 3,Sunset = 4,Night = 5,Portrait = 6,BackLight = 7,Sports = 8,AntiShake = 9,Flowers = 10,CandleLight = 11,Fireworks = 12,Party = 13,NightPortrait = 14,Theater = 15,Action = 16,AR = 17,FacePriority = 18,Barcode = 19,BestShot = 20
};
原因分析
需要ANDROID_CONTROL_MODE_USE_SCENE_MODE == controlModeValue 才会赋值
解决
应用需要先设置CONTROL_MODE_USE_SCENE_MODE
builder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_USE_SCENE_MODE);
builder.set(CaptureRequest.CONTROL_SCENE_MODE, CameraMetadata.CONTROL_SCENE_MODE_FACE_PRIORITY);