RedApparat / Fotoapparat

Making Camera for Android more friendly. 📸
Apache License 2.0
3.81k stars 405 forks source link

I have implemented updateConfiguration but the screen is not refreshing. #412

Open eosr14 opened 3 years ago

eosr14 commented 3 years ago

Hello. I am implementing a camera using Fotoapparat. I want to change the iso, exposure, focus, and ImageRatio settings through updateConfiguration settings, but it doesn't work. Please help me.

How did you initialize FA?

      binding?.let { binding ->
            fotoApparatCamera = Fotoapparat(
                    context = this@MainActivity,
                    view = binding.cvMainCamera,
                    focusView = binding.fvMainFocus,
                    logger = loggers(logcat()),
                    lensPosition = activeCamera.lensPosition,
                    cameraConfiguration = activeCamera.configuration,
                    cameraErrorCallback = {
                        Toast.makeText(
                                this@MainActivity,
                                "cameraErrorMessage: $it",
                                Toast.LENGTH_SHORT
                        ).show()
                        Log.e(TAG, "Camera Error : $it")
                    }
            )
        }

What did you expect?

    override fun onStart() {
        super.onStart()

        if (isPermissionsGranted) {
            fotoApparatCamera?.start()
            adjustViewsVisibility()
        }
    }

    override fun onStop() {
        super.onStop()

        if (isPermissionsGranted) {
            fotoApparatCamera?.stop()
        }
    } 
        is OnClickCameraIsoEvent -> {
                                    fotoApparatCamera?.updateConfiguration(
                                            UpdateConfiguration(
                                                    sensorSensitivity = manualSensorSensitivity(it.iso)
                                            )
                                    )
                                }

       is OnClickCameraExposureEvent -> {
                                    fotoApparatCamera?.updateConfiguration(
                                            UpdateConfiguration
                                                    .builder()
                                                    .exposureCompensation { it.exposure }
                                                    .build()
                                    )
                                }

          is OnClickCameraFocusEvent -> {
                                    fotoApparatCamera?.updateConfiguration(
                                            UpdateConfiguration
                                                    .builder()
                                                    .focusMode {
                                                        when (it.cameraFocusMode) {
                                                            CameraFocusMode.FIXED -> FocusMode.Fixed
                                                            CameraFocusMode.INFINITY -> FocusMode.Infinity
                                                            CameraFocusMode.MACRO -> FocusMode.Macro
                                                            CameraFocusMode.AUTO -> FocusMode.Auto
                                                            CameraFocusMode.CONTINUOUS_FOCUS_PICTURE -> FocusMode.ContinuousFocusPicture
                                                            CameraFocusMode.CONTINUOUS_FOCUS_VIDEO -> FocusMode.ContinuousFocusVideo
                                                            CameraFocusMode.EDOF -> FocusMode.Edof
                                                        }
                                                    }
                                                    .build()
                                    )
                                }

I implemented updateConfiguration, but the screen is not refreshing. Help me

Context: