按照 Android L 预览页面上的 camera2basic 指南,我能够拍摄正常图像,即没有闪光灯或使用自动对焦机制(我依赖被动对焦)
但是,我想拍一张闪光图像。文档说明在拍摄闪光图像之前,我应该调用 android.control.aePrecaptureTrigger 来确定正确的曝光。
我的问题:
- 如何调用 AE Precapture 触发器,等待它完成,然后使用 capture(CaptureRequest, CameraCaptureSession.CaptureListener, Handler) 拍摄图像?
我已经尝试过的方法:
- 用户点击截图按钮后,我开始预览
- 将 CONTROL_AE_PRECAPTURE_TRIGGER 设置为 CONTROL_AE_PRECAPTURE_TRIGGER_START
- 在 CaptureListener 的 onCaptureCompleted 方法中监控 AE_STATE 结果
- 当 AE_STATE 收敛时,我设置 AE 锁并使用 capture() 方法拍摄图像
然而,闪光图像仍然曝光过度,有时,我得到完整的垃圾图像。
有没有人能让这个工作?
一旦它起作用,就可以以类似的方式使用自动对焦机制。
谢谢
最佳答案
感谢您试用新的 camera2 API!
您不需要锁定 AE;一旦您看到 AE_STATE 为 CONVERGED(或 FLASH_REQUIRED),请提交静态捕获请求。
要验证的事情:
- 对于预览和静态捕获请求,您的 AE_MODE 是 ON_AUTO_FLASH 还是 ON_ALWAYS_FLASH?否则,测光例程将无法控制闪光灯功率或正确闪光。静态捕捉和预览模板可能只是将 AE 模式设置为 ON,这意味着闪光灯不会在 AE 控制下闪光。
- 您是否使用 CAPTURE_INTENT_STILL_PICTURE 进行静态捕捉?否则,闪光灯将不会被自动装置发射。这是为 TEMPLATE_STILL_CAPTURE 自动设置的。
如果您看到垃圾图片,请随时在我们的 Android AOSP 跟踪器上提交错误: http://b.android.com
详细说明您的 session 输出集会特别有帮助,因为我们知道某些输出表面集目前存在一些错误。
关于Android L - 使用 Camera2 api 使用自动对焦拍摄闪光图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24626473/