2016-10-05 5 views
1

я получаю следующее сообщение об ошибкеИсключение java.lang.RuntimeException: SetParameters не удалось

Exception java.lang.RuntimeException: setParameters failed 
android.hardware.Camera.native_setParameters (Camera.java) 
android.hardware.Camera.setParameters (Camera.java:1946) 

в коде ниже. Я не знаю, что я делаю ниже.

 Camera mCamera = Camera.open(); 
     Parameters params = mCamera.getParameters(); 

     if (params.getFlashMode() != null) 
      params.setFlashMode(Parameters.FLASH_MODE_OFF); 

     if (nightMode && params.getSceneMode() != null) 
      params.setSceneMode(Parameters.SCENE_MODE_NIGHT); 

     if (params.getSupportedFocusModes().contains(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { 
      params.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); 
     } else if (params.getSupportedFocusModes().contains(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) { 
      params.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); 
     } else if (params.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_INFINITY)) { 
      params.setFocusMode(Parameters.FOCUS_MODE_INFINITY); 
     } 

     mCamera.setParameters(params); 

Эта ошибка возникает в некоторых устройствах, таких как samsung в основном. Обращение за помощью. Спасибо заранее.

ответ

2

Ваши параметры могут не поддерживаться устройством. Вы можете обнаружить доступные режимы фокусировки с помощью метода getSupportedFocusModes класса Camera.Parameters. Если какой-либо режим не содержится в этом списке, вы не можете установить его на камеру.

Редактировать

Как сказал Алекс в комментарии вы можете увидеть сообщение об ошибке в LogCat.

+2

То же самое верно для других параметров. На некоторых устройствах все может показаться странным, так как выбор режима сцены может противоречить режиму фокусировки и т. Д. Единственный способ безопасно управлять устройствами, которые вы не проверяли конкретно, - это всегда улавливать RuntimeException на setParameters(), а также вызывать getParameters() сразу после этого, потому что setParameters() также может терпеть неудачу молча. Иногда logcat (для обслуживания системных камер) может дать вам намек на то, что пошло не так. –

+0

Вы правы, я проверяю это решение на живых устройствах. Я обязательно отмечу это как принятое после проверки. – SimpleCoder

 Смежные вопросы

  • Нет связанных вопросов^_^