Java.lang.RuntimeException:setParameters在android.hardware.camera.native_setParameter失败(本地方法)

Java.lang.RuntimeException:setParameters在android.hardware.camera.native_setParameter失败(本地方法)

问题描述:

我正在使用Android APIDemo示例代码。 但我的手机是G2的Android OS 2.1Java.lang.RuntimeException:setParameters在android.hardware.camera.native_setParameter失败(本地方法)

其实

这是因为你的Nexus One的支持预览屏幕尺寸,

见罗马Nurik回答这里:RuntimeException on Camera.setParameters() on nexus one

nah0y。

在设置caemra参数之前,可以使用camera.getParameters()。flatten()来记录摄像机支持的所有参数。所以你可以使用正确的参数。

更换surfaceCreated methood这一点,并告诉我,如果它的工作

public void surfaceCreated(SurfaceHolder holder){ 
     // The Surface has been created, now tell the camera where to draw the 
     // preview. 


     Log.d(TAG, "surfaceCreated camera id" + mCamera); 

     try { 
      CamcorderProfile profile ; 

      int numCameras = Camera.getNumberOfCameras(); 
      if (numCameras > 1) { 
      profile = (CamcorderProfile 
         .get(Camera.CameraInfo.CAMERA_FACING_FRONT,CamcorderProfile.QUALITY_HIGH)); 
      } 
      else{ 

       profile = (CamcorderProfile 
         .get(Camera.CameraInfo.CAMERA_FACING_BACK,CamcorderProfile.QUALITY_HIGH)); 
      } 


      Camera.Parameters parameters = mCamera.getParameters(); 
      parameters.setPreviewSize(profile.videoFrameWidth, profile.videoFrameHeight); 
      mCamera.setParameters(parameters); 
      mCamera.setPreviewDisplay(holder); 
      mCamera.startPreview(); 
     } 
     catch (IOException e) { 
      Log.d(TAG, "Error setting camera preview: " + e.getMessage()); 
     }}