Java – cameradevice failed to create session [Camera2]
                                        
                    •
                    Java                                    
                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
                    
                    
                    
                                                        二维码
                        
                        
                                                
                        