2016-12-18 5 views
2

Я пытаюсь разработать приложение камеры для Android с использованием API камеры2. код работает нормально. Однако после тестирования его на связующей 5X createCaptureSession всегда терпит неудачу, если я добавить несколько поверхность и onConfigureFailed метод дозвонились ниже код, я используюAndroid Camera2 api несколько поверхностей ConfigureFailed

любую идею, почему это происходит только с связующей 5X

protected void startPreview() { 
    if (null == mCameraDevice) { 
    // Log.d(TAG, "mCameraDevice is null"); 
    return; 
    } 
    //close Preview Session 
    if (mCaptureSession != null) { 
    mCaptureSession.close(); 
    mCaptureSession = null; 
    } 

    try { 
    SurfaceTexture texture = mTextureView.getSurfaceTexture(); 
    assert texture != null; 
    texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); 
    Surface previewSurface = new Surface(texture); 
    mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); 
    mPreviewBuilder.addTarget(previewSurface); 

    //mCameraDevice.createCaptureSession(Arrays.asList(previewSurface, mImageReader), new CameraCaptureSession.StateCallback(){  this line fails 
    mCameraDevice.createCaptureSession(Arrays.asList(previewSurface), new CameraCaptureSession.StateCallback(){ // this works 
     @Override 
     public void onConfigured(CameraCaptureSession cameraCaptureSession) { 

     mCaptureSession = cameraCaptureSession; 

     mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE,CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); 
     updatePreview(); 
     } 

     @Override 
     public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) { 
     Toast.makeText(this, "onConfigureFailed", Toast.LENGTH_SHORT).show(); 
     } 
    }, null); 

    } catch (Exception e) { 
    Log.e(TAG, "startPreview faild",e); 
    e.printStackTrace(); 
    } 
} 

ответ

0

Тонизирующее разрешение, похоже, решило эту проблему. Я испытал это на Samsung S7 (SM-G930V) под управлением Android 7.0. Мое разрешение выбора было 2048x1152 или выходной размер около 2048 для ширины или высоты.