2015-11-29 7 views
6

मैं SurfaceView पर कैमरा डेटा स्ट्रीम करने के लिए Camera2 API का उपयोग करने का प्रयास कर रहा हूं। मैं इस गाइड अनुसरण कर रहा हूं: Camera2 guideकैमराडिवाइस सत्र बनाने में विफल रहा [कैमरा 2]

मैं पिछले 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 पर चल रहा हूं।

+1

से जब आप विफलता को देखने logcat उत्पादन जोड़ें। कैमरे की सेवा को लॉगकैट में अधिक जानकारी होनी चाहिए कि सत्र क्यों नहीं बनाया जा सकता है। –

+0

हैलो @ अरबीरूर मुझे एस 4 के साथ एक ही समस्या है, क्या आपको उस पर कोई सुराग मिला? – 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(); 
    } 
संबंधित मुद्दे