Как получить доступные разрешения с помощью CameraX на Android? - PullRequest
0 голосов
/ 28 марта 2020

Есть ли способ запросить доступные разрешения камеры с помощью 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)

Все еще ищите реальное решение. Заранее спасибо.

1 Ответ

0 голосов
/ 29 марта 2020

Вы всегда можете использовать camera2 api StreamConfigurationMap.getOutputSizes (), чтобы получить поддерживаемое разрешение даже в CameraX. Поскольку CameraX построена поверх camera2, это не должно иметь значения.

, если вы хотите знать, какое разрешение поддерживает camerax, API не существует. Но вы всегда можете установить разрешение по своему выбору, и CameraX позаботится о его масштабировании до ближайшего поддерживаемого разрешения.

...