Камера2 samsung galaxy s9 размер предварительного просмотра

Я использовал Camera2 и большую часть времени основывал на примерах Google Camera2. У меня возникают проблемы с соотношением сторон на разных телефонах.

Я получаю самый большой выходной размер и устанавливаю предварительный просмотр; это, кажется, всегда соотношение сторон 4: 3. На Pixel, Galaxy S9, Galaxy Note 8 и Moto G5 + соотношение сторон всегда 4: 3.

На Pixel, Galaxy Note 8 и Moto G5 + поток, идущий на предварительный просмотр, имеет соотношение сторон 4: 3. На Samsung Galaxy S9 прорисовывается поток с соотношением сторон 16: 9. Почему S9 выбирает размер потоковой передачи, отличный от установленного мной? Я установил для предварительного просмотра правильный размер, но выводится не то, что я установил.

Общий план того, что я делаю, таков:

List<Size> outputSizes = Arrays.asList(streamConfigurationMap.getOutputSizes(renderingClass));

Final Size previewOutputSize = Collections.max(outputSizes, new AreaComparator());

((AspectRatioTextureView) preview).setAspectRatio(previewOutputSize.getWidth(), previewOutputSize.getHeight());

preview.getSurfaceTexture().setDefaultBufferSize(previewOutputSize.getWidth(), previewOutputSize.getHeight());


previewRequestBuilder = camera.getCaptureRequestBuilder(CameraDevice.TEMPLATE_PREVIEW);

previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE,
                CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);

previewRequestBuilder.addTarget(previewSurface);

camera.setRepeatingRequest(previewRequestBuilder.build(), new CaptureListener());

1) какой размер вы просите на S9? 2) какой размер у вас? 3) вы также устанавливаете размер jpeg?

Alex Cohn 14.09.2018 10:04

1) 3024x4032 2) Как это проверить? Доступно ли это где-нибудь в CaptureResult в обратном вызове? Все, что я знаю, это что-то с соотношением сторон 16: 9. 3) Нет

user2836202 14.09.2018 22:23

Я не верю, что S9 поддерживает предварительный размер 3024x4032. Думаю, у него максимум 2160p. Обратите внимание, что даже в портретной ориентации вы должны запрашивать размер в альбомной; ориентация (см. Почему camera2 поддерживает размер предварительного просмотра, всегда больше высоты?). 4032x3024 кажется их максимальным разрешением рисунок.

Alex Cohn 14.09.2018 22:51

Обратный вызов OnImageAvailable () дает вам (с ImageReader.acquireLatestImage ()) android.media.Image, который имеет методы getWidth () и getHeigh ().

Alex Cohn 14.09.2018 22:57

ImageReader дает мне 3024x4032, но это для неподвижного изображения, и я явно устанавливаю эту ширину / высоту.

user2836202 15.09.2018 00:14

Есть ли способ получить поддерживаемые размеры предварительного просмотра для Camera2? Размер 3024x4032 извлекается из streamConfigurationMap.getOutputSizes (TextureView.class).

user2836202 15.09.2018 00:14
Здесь вы можете найти фрагмент кода для получения списка поддерживаемых размеров. Как вы увидите, к этой информации следует относиться с недоверием.
Alex Cohn 15.09.2018 07:54
1
7
269
0

Другие вопросы по теме