Android相机没有聚焦。当我尝试setParameters时崩溃

时间:2013-11-23 18:14:52

标签: android crash camera android-camera autofocus

好的,我正在使用metaio sdk,它启动了摄像头视图。一切正常,但在Galaxy S4手机上,相机非常模糊,也似乎放大了。这只发生在Galaxy S4上,在其他设备上相机看起来不错。

当我尝试通过将此相机参数添加到我的活动中来设置相机参数时:

@Override
public void onSurfaceChanged(int width, int height)
{
    super.onSurfaceChanged(width, height);
    Camera camera = metaioSDK.getCamera(this);

    Camera.Parameters parameters = camera.getParameters();
    Log.d("LEE","camera focused?"+parameters.getFocusMode());
    parameters.setFocusMode("continuous-picture");
    Log.d("LEE","camera focused?"+parameters.getFocusMode());
    camera.setParameters(parameters);

}

我遇到了这些错误:

11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: E/metaio-java(30060): Error in JavaScript: 
11-23 20:09:04.693: A/libc(30060): Fatal signal 11 (SIGSEGV) at 0x37333866 (code=1), thread 30146 (WebViewCoreThre)

此外,如果我尝试在onSurfaceCreated()中设置焦点模式,我没有崩溃,但相机视图仍然模糊。

public void onSurfaceCreated()
    {
        super.onSurfaceCreated();
        Camera camera = metaioSDK.getCamera(this);

        Camera.Parameters parameters = camera.getParameters();
        //Log.d("LEE","camera focused?"+parameters.getFocusMode());
        parameters.setFocusMode("continuous-picture");
        //Log.d("LEE","camera focused?"+parameters.getFocusMode());
        camera.setParameters(parameters);

    }

为什么会发生这种情况以及如何让它专注于S4呢?为什么在不同的设备上表现不同?

1 个答案:

答案 0 :(得分:0)

手动调用自动对焦无论何时需要对焦

样品

 preview.camera.autoFocus(new AutoFocusCallback()
{
 @Override
  public void onAutoFocus(boolean arg0,Camera arg1)
  {
    preview.camera.takePicture(shutterCallback,
                                        rawCallback, jpegCallback);
 }
});