catch hardware error: "Fail to get camera info"

pull/59/head
Tim H 8 years ago
parent 3d82937795
commit 4d38984822
  1. 23
      cameraview/src/main/java/com/otaliastudios/cameraview/Camera1.java

@ -269,6 +269,11 @@ class Camera1 extends CameraController {
if (error != null) throw error; if (error != null) throw error;
} }
/**
*
* @throws RuntimeException if Android failed to get the camera info.
* @return
*/
private boolean collectCameraId() { private boolean collectCameraId() {
int internalFacing = mMapper.map(mFacing); int internalFacing = mMapper.map(mFacing);
Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
@ -332,9 +337,21 @@ class Camera1 extends CameraController {
@Override @Override
void setFacing(Facing facing) { void setFacing(Facing facing) {
if (facing != mFacing) { if (facing != mFacing) {
mFacing = facing;
if (collectCameraId() && isCameraAvailable()) { // call these methods before actually changing the attribute's value, because
restart(); // collectCameraId may raise an exception that prevents us from changing anything here
try {
boolean restart = collectCameraId() && isCameraAvailable();
mFacing = facing;
if (restart) {
restart();
}
}
catch (Exception e) {
CameraException cameraException =
new CameraConfigurationFailedException("Failed to set the camera facing.", e);
mCameraCallbacks.onError(cameraException);
} }
} }
} }

Loading…
Cancel
Save