Android L - 使用 Camera2 api 使用自动对焦拍摄闪光图像

标签 android android-camera android-image android-5.0-lollipop

按照 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/

相关文章:

android - Phonegap 和 xml 文件到移动项目中的设计模式

安卓6.0 : Get package name of current activity

Android Camera takePicture函数不调用Callback函数

android - 从服务器获取位图图像以在 ImageView 上设置

java - ImageView坐标与Bitmap像素的对应关系——Android

android - 试图在 flutter 中创建一个没有 DRY 的 switchListTile

android - 如何解决某些 Android 设备上前置摄像头视频录制的伪影问题?

android - 设置相机尺寸 - 参数与 Intent ?

android - java.io.IOException : BufferedInputStream is closed 异常

android - 按下后退时不返回父 Activity