Google Glass预览图片因新的XE10版本而混乱

时间:2013-10-07 21:53:57

标签: google-glass

使用一些使用相机的apks(例如,zxing,opencv)会发生这种情况。它在预览中显示一个闪烁的图像,但它仍然是相机看到的功能,因此它似乎是编码不匹配。本机相机预览工作正常,因此内部应用程序不会出现此问题。

6 个答案:

答案 0 :(得分:32)

目前,请在获取Camera之后但在设置并开始预览之前尝试添加以下解决方法:

Camera.Parameters params = camera.getParameters();
params.setPreviewFpsRange(30000, 30000);
camera.setParameters(params);

(或者,如果您正在设置其他参数,只需将setPreviewFpsRange调用添加到现有参数中。)

答案 1 :(得分:8)

对于在Glass上使用ZXing的任何人,您可以使用上述修复从源代码构建一个版本。

将以下方法添加到CameraConfigurationManager.java

  public void googleGlassXE10WorkAround(Camera mCamera) {
        Camera.Parameters params = mCamera.getParameters();
        params.setPreviewFpsRange(30000, 30000);
        params.setPreviewSize(640,360);
        mCamera.setParameters(params);
  }

在ZXing代码中看到Camera.setParameters()的任何地方之后立即调用此方法。我只是将它放在CameraConfigurationManager中的两个位置,它就可以了。

我将预览尺寸设置为640x360以匹配玻璃分辨率。

答案 2 :(得分:4)

30 FPS预览非常高。如果您想节省一些电池和CPU,请考虑支持最慢的FPS就足够了:

List<int[]> supportedPreviewFpsRanges = parameters.getSupportedPreviewFpsRange();
int[] minimumPreviewFpsRange = supportedPreviewFpsRanges.get(0);
parameters.setPreviewFpsRange(minimumPreviewFpsRange[0], minimumPreviewFpsRange[1]);

答案 3 :(得分:1)

从XE16和XE16.11开始,该错误仍然存​​在,但此代码超出了故障并显示了正常的相机预览,请注意三个参数设置行及其值。我也在5000(5FPS)测试了它,它工作,并在60000(60FPS),它不起作用:

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        if (mCamera == null) return;

        Camera.Parameters camParameters = mCamera.getParameters();
        camParameters.setPreviewFpsRange(30000, 30000);
        camParameters.setPreviewSize(1920, 1080);
        camParameters.setPictureSize(2592, 1944);
        mCamera.setParameters(camParameters);
        try {
            mCamera.startPreview();
        } catch (Exception e) {
            mCamera.release();
            mCamera = null;
        }
    }

答案 4 :(得分:0)

从XE22开始这仍然是一个问题(!)将每秒帧数降低到30或更低就可以了:

 parameters.setPreviewFpsRange(30000, 30000);

事实上,不要忘记设置参数:

camera.setParameters(parameters);

由于支持的fps范围中包含60 fps,因此我没有找到解释为何会导致问题的明确解释。该视频可以录制720p,但我从未看到过该源添加fps。

答案 5 :(得分:-2)

您可以设置params.setPreviewSize(1200,800)。您可以更改此范围内的值,直到您可以清除颜色噪音。