I use Camera X and trying to lock AF and AE using FocusMeteringAction
, AF locking fine but AE doesn't lock. What can be a reason?
camerax_version = "1.1.0-alpha02"
val factory: MeteringPointFactory = previewView.meteringPointFactory
val point: MeteringPoint = factory.createPoint(x, y)
val builder = FocusMeteringAction.Builder(point)
builder.disableAutoCancel()
camerax?.cameraControl?.startFocusAndMetering(builder.build())
The code snippet is simple, and the ListenableFuture
from startFocusAndMetering()
returns a successful result, but AE still dynamic and not locked.
The result I am expecting: Then point the app towards something bright (eg. the sun or bright light) then lock the exposure. Then move the camera away from the light and everything will be super dark. This shows that the camera is not automatically adjusting the exposure (because it is locked).
My actual result is: Exposure adjusting and the picture is light/normal.
Would be grateful for any ideas! Thanks in advance!
It's been a long time but this might be helpful to someone may ended up here.
I don't know if it is possible by using only CameraX apis. But I've achieved the expected behaviour with Camera2 apis. With the below snippet, the AF and AE can be measured and updated with a tap and stays locked afterwards until another tap occures.