Android Fotoapparat Camera - Мерцание при флуоресцентном освещении - PullRequest
0 голосов
/ 26 апреля 2018

Я пытался использовать Fotoapparat (Java) в своем приложении, но я получаю случайные черные полосы на некоторых устройствах (мерцание, например, когда вы указываете камеру на светодиодный дисплей), когда снимок сделан под искусственное освещение. Я попытался использовать antiBandingMode (все 4 варианта по умолчанию: авто, 50 Гц, 60 Гц и выключен) в конфигурации камеры, но проблема сохраняется.

Забавно, эта проблема не возникает, когда я использую обычное приложение камеры на этих устройствах, только при использовании Fotoapparat в моем приложении.

Пример:

enter image description here

CameraConfiguration code:

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();

Инициализатор фотоаппарата:

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();
    }

Какие-нибудь предложения, чтобы помочь мне решить эту проблему? Я бы очень хотел продолжать пользоваться фотоаппаратом, если это возможно.

Спасибо!

1 Ответ

0 голосов
/ 27 апреля 2018

После некоторых тестов я обнаружил, что проблема в чувствительности датчика. Используя .sensorSensitivity (manualSensorSensitivity (500)) я избавился (в основном) от линий.

...