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());
}}