Camera2 Samsung Galaxy s9 Предварительный просмотр Размер - PullRequest
0 голосов
/ 13 сентября 2018

Я использую 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());
...