2016-10-05 68 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); 

這個錯誤發生在一些像三星這樣的設備上。 尋求幫助。提前致謝。

回答

2

您的參數可能不被設備支持。您可以使用Camera.Parameters類的getSupportedFocusModes方法檢測可用的對焦模式。如果某個模式不包含在此列表中,則無法將其設置爲您的相機。

編輯

亞歷克斯在評論說,你可以看到logcat中的錯誤消息。

+2

其他參數也是如此。在某些設備上,事情可能會變得非常奇怪,例如選擇場景模式可能與焦點模式相矛盾等等。在沒有專門驗證的設備上安全操控的唯一方法是始終在setParameters()上捕獲RuntimeException,並且還調用getParameters()之後立即,因爲setParameters()也可能會以靜默方式失敗。有時,logcat(用於系統攝像頭服務)可以給你提示出了什麼問題。 –

+0

你說得對,我正在現場設備上檢查這個解決方案。我肯定會將這個標記標記爲覈實後接受。 – SimpleCoder

相關問題