2015-11-29 5 views
6

にカメラデータをストリームするのに、Camera2 APIを使用しようとしています。私は、このガイド以下のよ:私は()過去step 5CameraDeviceがセッションの作成に失敗しました[Camera2]

MainActivity.java::onCreateを取得することはできませんCamera2 guide

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で走っています。

+1

をあなたが失敗を見たときからlogcat出力を追加してください。カメラサービスは、なぜセッションを作成できないのかについて、より多くの情報をlogcatに持つ必要があります。 –

+0

こんにちは@Arbitur私はs4と同じ問題を抱えています、あなたはそれについて何か手がかりを見つけましたか? – Ajay

答えて

0

はonConfiguredに追加します。

if (null == cameraDevice) { 
     Log.e(TAG, "updatePreview error, return"); 
     return; 
    } 
    captureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO); 
    try { 
     cameraCaptureSessions.setRepeatingRequest(captureRequestBuilder.build(), null, mBackgroundHandler); 
    } catch (CameraAccessException e) { 
     e.printStackTrace(); 
    } 
関連する問題