// create the user required QualitySelector (video resolution): we know this is
// supported, a valid qualitySelector will be created.
val qualitySelector = QualitySelector.of(
cameraCapabilities[cameraIndex].qualitySelector[qualitySelectorIndex])
// build a recorder, which can:
// - record video/audio to MediaStore(only shown here), File, ParcelFileDescriptor
// - be used create recording(s) (the recording performs recording)
val recorder = Recorder.Builder()
.setQualitySelector(qualitySelector)
.build()
videoCapture = VideoCapture.withOutput(recorder)
but how can I set resolution returned by Camera2 API:
cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)?.getOutputSizes(SurfaceTexture::class.java)
There are resolutions (e.g. with ratio: 1:1) that QualitySelector does not contain.
It could be set only via:
val videoCaptureBuilder = VideoCapture.Builder()
videoCaptureBuilder.setTargetRotation(...)
videoCaptureBuilder.setTargetResolution(...)
videoCaptureBuilder.setMaxResolution(...)
but this is different way then VideoCapture with recorder.