小编rfb*_*ue2的帖子

Android:如何检测相机是否闪烁

我正在使用Android的Camera2 API,我目前希望相机在准备闪光时执行某项操作.

构建CaptureRequest时,以下行:

captureRequest.set(CaptureRequest.CONTROL_AE_MODE,CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
Run Code Online (Sandbox Code Playgroud)

允许相机在低光照条件下闪光.但是,我不知道如何检测相机是否准备闪光.似乎在线关于这一特定行动的文献非常稀少.

我在相机处理部分结果时尝试检查是否FLASH_STATE存在,但似乎关键不可用 - 它一直在返回.也许我不是在正确的地方检查?FLASH_STATE_READYCaptureCallbacknull

相机CaptureCallback如下所示(基于Google的Camera2Basic代码示例):

private CameraCaptureSession.CaptureCallback mCaptureCallback
        = new CameraCaptureSession.CaptureCallback()    {
    private void process(CaptureResult result)  {
        switch(mState)  {
            case STATE_PREVIEW: break;
            case STATE_WAITING_LOCK:
                // checking if result.get(CaptureResult.FLASH_STATE) == 
                // CaptureResult.FLASH_READY over here didn't work because
                // null was returned
                int afState = result.get(CaptureResult.CONTROL_AF_STATE);
                if (CaptureResult.CONTROL_AF_STATE_FOCUSED_LOCKED == afState ||
                        CaptureResult.CONTROL_AF_STATE_NOT_FOCUSED_LOCKED == afState) {
                    Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
                    if (aeState == null ||
                            aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) {
                        mState …
Run Code Online (Sandbox Code Playgroud)

java android android-camera

6
推荐指数
1
解决办法
1831
查看次数

标签 统计

android ×1

android-camera ×1

java ×1