Как передать входную конфигурацию на камеру 2 Android - PullRequest
0 голосов
/ 08 октября 2018

Я занимаюсь разработкой приложения для камеры Android, и я хотел передать размер захвата для настройки камеры перед съемкой.

Это мой код:

try {
    mCaptureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
    mCaptureRequestBuilder.addTarget(previewSurface);

    InputConfiguration inputConfiguration = new InputConfiguration(1920, 1080, ImageFormat.JPEG); //error here.

    cameraDevice.createReprocessableCaptureSession(inputConfiguration, Arrays.asList(previewSurface), new CameraCaptureSession.StateCallback() {
            @Override
            public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
                try {
                    cameraCaptureSession.setRepeatingRequest(mCaptureRequestBuilder.build(), null, handler);
                } catch (CameraAccessException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
                Toast.makeText(getApplicationContext(), "Camera Preview Failed!!", Toast.LENGTH_SHORT).show();
            }
    }, null);
}

ИтакЯ пытаюсь передать входную конфигурацию на камеру здесь.Моя проблема в том, что я получаю сообщение об ошибке InputConfiguration.Это моя ошибка:

java.lang.IllegalArgumentException: input format 256 is not valid

Я пробовал это с множеством различных ImageFormat с, таких как JPEG, UNKNOWN, NV21 и другими.Это не работает.Помогите мне устранить эту ошибку, а также, если мой подход к работе с камерой неверен, сообщите мне.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Используются только входные конфигурации повторная обработка сценарии использования, в которых имеется циклический буфер на уровне приложения для захваченных частично обработанных кадров.

Когда пользователь нажимает кнопку спуска затвора, вы отправляете один из отснятых кадров обратно на устройство камеры для окончательной обработки.Входная конфигурация предназначена для выбора размера и формата этого пути обратно в камеру.

Для простых приложений захвата вам важны только выходные конфигурации.

0 голосов
/ 08 октября 2018

Вы работаете с TEMPLATE_PREVIEW, который не поддерживает ImageFormat.JPEG .

Camera2 мандаты, поддерживающие предварительный просмотр YUV 420 , вот так :

InputConfiguration inputConfiguration = new InputConfiguration(1920, 1080, ImageFormat.YUV_420_888);
...