Я пытаюсь использовать API Camera2
для передачи данных камеры на SurfaceView
. Я следую этому руководству: Camera2 guideCameraDevice не удается создать сеанс [Camera2]
Я не могу пройти мимо 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 (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);
Программа заканчивается в функции onConfigureFailed()
. Я не знаю, что может быть ошибкой, и я не знаю, как проверить, что это такое.
Я предполагаю, что я что-то пропустил в CaptureRequest
, но я понятия не имею, что.
Я бегу на Samsung Galaxy S4.
Пожалуйста, добавьте выход LogCat с момента, когда вы видите ошибку. Служба камеры должна иметь больше информации в logcat о том, почему сеанс не может быть создан. –
привет @Arbitur У меня такая же проблема с s4, вы нашли какую-то подсказку? – Ajay