【发布时间】:2016-03-03 10:02:37
【问题描述】:
我正在尝试使用Camera2 API 将相机数据流式传输到SurfaceView。我正在关注本指南:Camera2 guide
我无法通过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 camera)
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 也有同样的问题,你找到任何线索了吗?
标签: java android camera camera2