Есть ли способ запросить доступные разрешения камеры с помощью CameraX
? При Camera2
это возможно при использовании StreamConfigurationMap.getOutputSizes () . Тем не менее, я не могу найти способ сделать это, используя CameraX
.
. Не помогает, что документация довольно устарела. В настоящее время он ссылается на версию 1.0.0-alpha06
, и многие API были изменены в последней 1.0.0-beta01
.
РЕДАКТИРОВАТЬ:
Существует способ получить доступные разрешения, используя Camera2
API (благодаря ответу Васима ниже). Однако это возможно только после привязки камеры к жизненному циклу, и поэтому целевое разрешение больше не может быть изменено, что делает его совершенно бесполезным.
Конечно, я могу указать целевое разрешение, не зная доступных, но таким образом я не могу контролировать полученное соотношение сторон. В моем случае я получаю 16: 9 Preview
и 4: 3 ImageAnalysis
, хотя targetResolution
для моего ImageAnalysis
в 16: 9 (224x126).
Для запишите, вот как вы можете получить выходные размеры:
val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageAnalyzer)
val cameraId = Camera2CameraInfo.extractCameraId(camera.cameraInfo)
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
val outputSizes = streamConfigurationMap.getOutputSizes(format)
Все еще ищите реальное решение. Заранее спасибо.