Sto provando a utilizzare l'API Camera2
per lo streaming dei dati della fotocamera su un SurfaceView
. Sto seguendo questa guida: Camera2 guideCameraDevice che non riesce a creare la sessione [Camera2]
non riesco ad andare oltre step 5
MainActivity.java::onCreate()
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView)findViewById(R.id.surface);
manager = (CameraManager)getSystemService(Context.CAMERA_SERVICE);
MainActivity.java::onClick()
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;
}
}
MainActivity.java.StateCallback :: onOpened (fotocamera CameraDevice)
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);
Il programma finisce nella funzione onConfigureFailed()
. Non so quale potrebbe essere l'errore, e non so come controllare cosa sia.
La mia ipotesi sarebbe che mi manca qualcosa nel CaptureRequest
, ma non ho idea di cosa.
Sono in esecuzione su un Samsung Galaxy S4.
Si prega di aggiungere uscita logcat da quando si vede il fallimento. Il servizio fotocamera dovrebbe avere maggiori informazioni in logcat sul motivo per cui la sessione non può essere creata. –
ciao @Arbitur Sto avendo lo stesso problema con s4, hai trovato qualche indizio su questo? – Ajay