CreateDefaultRequest - Invalid templateId specified in createCaptureRequest ()

I want to set up the camera2 API on Android to take a picture at the maximum frame rate, so I am trying to take a picture without processing it.

After doing some research, I found that the best way to do this is to create a capture request with the TEMPLATE_MANUAL parameter .

When creating CaptureRequest.Builder:

final CaptureRequest.Builder capturebuilder = 
cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_MANUAL);

      

I have this error: createDefaultRequest is an invalid templateId specified

'cameraDevice' comes from:

private CameraDevice.StateCallback stateCallback = new CameraDevice.StateCallback() {
        @Override
        public void onOpened(CameraDevice camera) {
            cameraDevice = camera;
            startCamera();
        }
        @Override
        public void onDisconnected(CameraDevice camera) {
        }
        @Override
        public void onError(CameraDevice camera, int error) {
        }
    };

      

And here "stateCallBack" is called:

public  void openCamera()
    {
        CameraManager manager=(CameraManager)getSystemService(Context.CAMERA_SERVICE);
        try
        {
            String camerId=manager.getCameraIdList()[0];
            CameraCharacteristics characteristics=manager.getCameraCharacteristics(camerId);
            StreamConfigurationMap map=characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
            previewsize=map.getOutputSizes(SurfaceTexture.class)[0];
            if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {

                manager.openCamera(camerId,stateCallback,null);
            }

        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }

      

+3


source to share





All Articles