如果在Android自定义相机中初始化相机参数时未设置曝光和白平衡会发生什么情况。相机是自己处理这些还是我需要在相机初始化时指定值?
过去我的闪光灯出现问题,将曝光和白平衡设置为特定值可以帮助我克服这些问题。我没有任何计划让用户手动修补曝光和/或白平衡设置
我设置了以下代码:
if(isSupported(Camera.Parameters.SCENE_MODE_AUTO, mParameters.getSupportedSceneModes()))
{
mSceneMode=Camera.Parameters.SCENE_MODE_AUTO;
mParameters.setSceneMode(mSceneMode);
}
int min=mParameters.getMinExposureCompensation();
int max=mParameters.getMaxExposureCompensation();
float step=mParameters.getExposureCompensationStep();
//do i need to setExposureCompensation here??
if(mSceneMode==Camera.Parameters.SCENE_MODE_AUTO && isSupported(Camera.Parameters.FLASH_MODE_AUTO,mParameters.getSupportedFlashModes()))
{
//ususally when I let the flash fire,the image is filled with light
//all that does is make everything else undecipherable...
mFlashMode=Camera.Parameters.FLASH_MODE_AUTO;
mParameters.setFlashMode(mFlashMode);
}
if(isSupported(Camera.Parameters.WHITE_BALANCE_AUTO,mParameters.getSupportedWhiteBalance()))
{
mWhiteBalanceMode=Camera.Parameters.WHITE_BALANCE_AUTO;
mParameters.setWhiteBalance(mWhiteBalanceMode);
}
我已经读过当应用autoExposureLock和autoWhiteBalanceLock时停止自动曝光和自动白平衡更新周期。为什么以及如何在相机代码中使用这些锁?
答案 0 :(得分:6)
根据我自己的开发,曝光和白平衡默认设置为“自动”:自动曝光“和”自动白平衡“。
您可以使用以下方法检查支持的模式:
mCameraParameters = mCamera.getParameters();
Log.i(TAG, "Supported Exposure Modes:" + mCameraParameters.get("exposure-mode-values"));
Log.i(TAG, "Supported White Balance Modes:" + mCameraParameters.get("whitebalance-values"));
并使用以下方法检查当前模式:
Log.i(TAG, "Exposure setting = " + mCameraParameters.get("exposure"));
Log.i(TAG, "White Balance setting = " + mCameraParameters.get("whitebalance"));
如果你想使用其他模式,可以这样设置:
mCameraParameters.set("exposure", "night");
mCamera.setParameters(mCameraParameters);