Android Fotoapparat相机 - 荧光灯下闪烁

时间:2018-04-26 12:19:46

标签: android camera android-camera

我一直在尝试在我的应用程序上使用Fotoapparat(Java),但我在某些设备上得到随机的黑条(闪烁,就像你将相机指向LED显示屏一样),当拍摄照片时人工照明。 我试图在相机配置中使用antiBandingMode(所有4个默认选项:auto,50hz,60hz和off),但问题仍然存在。

有趣的是,当我在这些设备上使用常规相机应用程序时,只有在我的应用程序中使用Fotoapparat时才会出现此问题。

样品:

enter image description here

CameraConfiguration代码:

private CameraConfiguration cameraConfiguration = CameraConfiguration
            .builder()
            .photoResolution(standardRatio(
                    highestResolution()
            ))
            .focusMode(firstAvailable(
                    continuousFocusPicture(),
                    autoFocus(),
                    fixed()
            ))
            .antiBandingMode(firstAvailable(
                    auto(),
                    hz60(),
                    hz50(),
                    none()
            ))
            .flash(firstAvailable(
                    off()
            ))
            .previewFpsRange(highestFps())
            .sensorSensitivity(highestSensorSensitivity())
            .build();

Fotoapparat初始化程序:

private Fotoapparat createFotoapparat() {
        return Fotoapparat
                .with(this)
                .into(cameraView)
                .previewScaleType(ScaleType.CenterInside)
                .lensPosition(back())
                .focusMode(firstAvailable(
                        continuousFocusPicture(),
                        autoFocus(),
                        fixed()
                ))
                .logger(loggers(
                        logcat(),
                        fileLogger(this)
                ))
                .cameraErrorCallback(new CameraErrorListener() {
                    @Override
                    public void onError(@NotNull CameraException e) {
                        Toast.makeText(PictureActivity.this, getString(R.string.txt_erro_tirar_foto), Toast.LENGTH_SHORT).show();
                    }
                })
                .build();
    }

任何可以帮我处理这个问题的消息?如果可能的话,我真的想继续使用Fotoapparat。

谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些测试,我发现问题是sensorSensitivity。 使用.sensorSensitivity(manualSensorSensitivity(500))我摆脱了(大部分)线条。