Я пытался использовать Fotoapparat (Java) в своем приложении, но я получаю случайные черные полосы на некоторых устройствах (мерцание, например, когда вы указываете камеру на светодиодный дисплей), когда снимок сделан под искусственное освещение.
Я попытался использовать antiBandingMode (все 4 варианта по умолчанию: авто, 50 Гц, 60 Гц и выключен) в конфигурации камеры, но проблема сохраняется.
Забавно, эта проблема не возникает, когда я использую обычное приложение камеры на этих устройствах, только при использовании Fotoapparat в моем приложении.
Пример:
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();
}
Какие-нибудь предложения, чтобы помочь мне решить эту проблему? Я бы очень хотел продолжать пользоваться фотоаппаратом, если это возможно.
Спасибо!