Код: Выделить всё
androidx.camera) библиотека. Вдохновение было взято из этого вопроса. Вот проблемный фрагмент кода:
@OptIn(ExperimentalGetImage::class)
private fun startCamera(deviceSize: Pair) {
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.addListener({
val cameraProvider = cameraProviderFuture.get()
val preview = Preview.Builder().build().also {
it.surfaceProvider = PreviewView(this).surfaceProvider
}
val size = Size(deviceSize.first, deviceSize.second)
val strategy = ResolutionStrategy(deviceSize, 2)
val rs = ResolutionSelector.Builder().setResolutionStrategy(strategy)
val imageAnalysis = ImageAnalysis.Builder()
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.setResolutionSelector(rs.build())
.build()
imageAnalysis.setAnalyzer(cameraExecutor) { imageProxy ->
val rotationDegrees = imageProxy.imageInfo.rotationDegrees
val mediaImage = imageProxy.image
if (mediaImage != null) {
val inputImage = InputImage.fromMediaImage(mediaImage, rotationDegrees)
detectFaces(inputImage) { faces ->
drawRectangles(faces)
imageProxy.close()
}
} else {
imageProxy.close()
}
}
val cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA
try {
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalysis)
} catch (e: Exception) {
e.printStackTrace()
}
}, ContextCompat.getMainExecutor(this))
}
"Невозможно получить доступ к 'constructor(): РазрешениеStrategy': это частный в 'androidx/camera/core/resolutionselector/ResolutionStrategy'"
Мне это кажется очень странным, поскольку на веб-сайте разработчиков Android задокументирован общедоступный конструктор, и я также можно перейти к тому же общедоступному конструктору, нажав «Перейти» > «Декларация». Однако когда я наводю курсор на конструктор, используемый стратегией, IDE показывает закрытый конструктор. Почему это происходит и как это исправить?
Подробнее здесь: https://stackoverflow.com/questions/793 ... onstrategy
Мобильная версия