Android 摄像头获取参数失败

Android 摄像头获取参数失败,android,camera,Android,Camera,该代码在三星手机上正常工作。但是当调用以下方法camera.getParameters()时,phones HTC ONE和其他许多Phone应用程序崩溃 日志: 我有一个问题和你们一样。我检查了一下,发现相机被解锁了() 所以我在getParameter前面加了lock(),在setParameter后面加了unlock(),希望对大家有所帮助 //there is neeed try catch block if(mMediaRecorder == null) { m

该代码在三星手机上正常工作。但是当调用以下方法camera.getParameters()时,phones HTC ONE和其他许多Phone应用程序崩溃

日志:


我有一个问题和你们一样。我检查了一下,发现相机被解锁了() 所以我在getParameter前面加了lock(),在setParameter后面加了unlock(),希望对大家有所帮助

//there is neeed try catch block
if(mMediaRecorder == null) {
            mCamera.lock();
            mParameters = mCamera.getParameters();
        }else {
            mParameters = mCamera.getParameters();
        }

if(mParameters != null && mCamera != null){
    final String mode = mParameters.getFlashMode();
    try{
        if (TextUtils.isEmpty(mode) || Camera.Parameters.FLASH_MODE_OFF.equals(mode))
        {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        }else {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        }
        mCamera.setParameters(mParameters);
    }catch(Exception ex) {
        ex.printStackTrace();
    }finally {
        try{
            mCamera.unlock();
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

你可以在[这里][1][1]找到正确答案:
if (mCamera == null) 
    return; //don't write anything between these two lines, previously I got this error, because I put a log out.
Camera.Parameters lParameters = mCamera.getParameters();
//there is neeed try catch block
if(mMediaRecorder == null) {
            mCamera.lock();
            mParameters = mCamera.getParameters();
        }else {
            mParameters = mCamera.getParameters();
        }

if(mParameters != null && mCamera != null){
    final String mode = mParameters.getFlashMode();
    try{
        if (TextUtils.isEmpty(mode) || Camera.Parameters.FLASH_MODE_OFF.equals(mode))
        {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        }else {
            mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        }
        mCamera.setParameters(mParameters);
    }catch(Exception ex) {
        ex.printStackTrace();
    }finally {
        try{
            mCamera.unlock();
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}