Остановка PreviewView CameraX

В моем приложении есть экран который является камерой, суть в том что при нажатии на кнопку сделать фото, PreviewView должно застывать, но иногда выбрасывает из приложения без каких-либо ошибок

запуск камеры

  private fun startCamera(){
        currentBitmap = null
        cameraJob?.cancel()
        cameraJob = viewLifecycleOwner.lifecycleScope.launchWhenCreated {
            if (cameraProvider == null){
                cameraProvider = requireContext().getCameraProvider()
            }

            cameraProvider?.apply {
                restart(
                    viewLifecycleOwner,
                    getPreview(viewBinding.camera.preview),
                    buildCameraSelector(viewBinding.panelForCamera.isBackCamera()),
                    imageCapture
                )
            }
        }
    }

internal fun ProcessCameraProvider.restart(
    lifecycleOwner: LifecycleOwner,
    preview: Preview,
    selector: CameraSelector,
    imageCapture: ImageCapture
){
    unbindAll()
    bindToLifecycle(
        lifecycleOwner,
        selector,
        preview,
        imageCapture
    )
}

получение фото

 private fun updateBitmap(){
        viewLifecycleOwner.lifecycleScope.launch {
            currentBitmap = imageCapture.takePicture(requireContext())
            cameraProvider?.unbindAll()
        }


internal suspend fun ImageCapture.takePicture(context: Context): Bitmap =
    suspendCoroutine { continuation ->
        takePicture(
            ContextCompat.getMainExecutor(context),
            object : ImageCapture.OnImageCapturedCallback() {
                @SuppressLint("UnsafeOptInUsageError")
                override fun onCaptureSuccess(imageProxy: ImageProxy) {
                    imageProxy.useAndConvertToBitmap{
                        continuation.resume(it)
                    }
                }
            }
        )
    }
    }

В чем может быть причина, что даже нет ошибки


Ответы (0 шт):