google / cameraview

[DEPRECATED] Easily integrate Camera features into your Android app
Apache License 2.0
4.74k stars 1.03k forks source link

XiaoMi MI3 os:Android4.4.4 app crashes , when switch front camera。 #193

Open hxk1224 opened 7 years ago

hxk1224 commented 7 years ago

crash happens when setFlashInternal().

/**

TheMelody commented 6 years ago

加我qq群:490113234 ,细聊,他们代码里面在启动相机的时候调用了chooseCameraIdByFacing这个方法,不论你怎么设置前置摄像头都不行,除非你单独调用cameramanager.openCamera,(注意):chooseCameraIdByFacing这个方法简直恶心,你可以把里面改造下,我就是改造完之后,才能用,切换前置没什么问题了。我其实自己做了设置前置后置的标志,然后在里面动态设置。

xiaanming commented 6 years ago

private boolean setFlashInternal(int flash) { if (isCameraOpened()) { List modes = mCameraParameters.getSupportedFlashModes(); //flash mode setting is not supported if (modes == null) { mFlash = flash; return false; }

        String mode = FLASH_MODES.get(flash);
        if (modes != null && modes.contains(mode)) {
            mCameraParameters.setFlashMode(mode);
            mFlash = flash;
            return true;
        }
        String currentMode = FLASH_MODES.get(mFlash);
        if (!modes.contains(currentMode)) {
            mCameraParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            mFlash = Constants.FLASH_OFF;
            return true;
        }
        return false;
    } else {
        mFlash = flash;
        return false;
    }
}

motify this function can fix it!