Java – cameradevice failed to create session [Camera2]

I'm trying to stream camera data to surfaceview. Com using the Camera2 API I am following this guide: Camera2 guide

I can't pass step 5

setContentView(R.layout.activity_main);

surfaceView = (SurfaceView)findViewById(R.id.surface);
manager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);
for (String id : manager.getCameraIdList()) {
    Cameracharacteristics characteristics = manager.getCameracharacteristics(id);

    Integer direction = characteristics.get(Cameracharacteristics.LENS_FACING);

    if (direction != null && direction == Cameracharacteristics.LENS_FACING_BACK) {
        if (checkCallingOrSelfPermission("android.permission.CAMERA") == PackageManager.PERMISSION_GRANTED)
            manager.openCamera(id,new StateCallback(),null);

        break;
    }
}
List<Surface> surfaces = new LinkedList<>();
surfaces.add(surfaceView.getHolder().getSurface());

CaptureRequest.Builder builder = camera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
builder.addTarget(surfaces.get(0));

camera.createCaptureSession(surfaces,new CameraCaptureSession.StateCallback() {
    @Override
    public void onConfigured(CameraCaptureSession session) {
        Log.i(TAG,"Configured");
    }

    @Override
    public void onConfigureFailed(CameraCaptureSession session) {
        Log.e(TAG,"Configured Failed"); // Ends up in this function :(
    }
    },null);

The program is finally in the onconfigurefailed() function I don't know what might be wrong. I don't know how to check what it is

My guess is that I missed something in capturerequest, but I don't know what it is

I'm running Samsung Galaxy S4

Solution

Add to onconfigured:

if (null == cameraDevice) {
        Log.e(TAG,"updatePreview error,return");
        return;
    }
    captureRequestBuilder.set(CaptureRequest.CONTROL_MODE,Camera@R_403_1926@data.CONTROL_MODE_AUTO);
    try {
        cameraCaptureSessions.setRepeatingRequest(captureRequestBuilder.build(),null,mBackgroundHandler);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>