xataka sirven que paso para los google glass costo con caracteristicas aplicaciones google-glass

sirven - Imagen de vista previa de Google Glass codificada con la nueva versión XE10



wiki google glass (6)

Esto ocurre usando unos pocos apks que hacen uso de la cámara (por ejemplo, zxing, opencv). Muestra una imagen defectuosa en la vista previa, pero sigue siendo una función de lo que ve la cámara, por lo que parece ser una discrepancia en la codificación. La vista previa de la cámara nativa funciona bien, por lo que las aplicaciones internas no presentan este problema.


El error aún existe a partir de XE16 y XE16.11 pero este código supera la falla y muestra una vista previa normal de la cámara, tenga en cuenta las tres líneas de configuración de parámetros y sus valores. También he probado esto en 5000 (5FPS) y funciona, y en 60000 (60FPS) y no funciona:

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


Esto sigue siendo un problema a partir de XE22 (!) Bajar los cuadros por segundo a 30 o menos hace el truco:

parameters.setPreviewFpsRange(30000, 30000);

Y de hecho, no te olvides de configurar los parámetros:

camera.setParameters(parameters);

No he encontrado una explicación clara de por qué esto causa problemas, ya que se incluyen 60 fps en el rango de fps admitidos. El video puede grabar 720p, pero nunca vi una fuente que agregue los fps a esto.


La vista previa de 30 FPS es bastante alta. Si desea ahorrar algo de batería y CPU, considere que el FPS más lento admitido es suficiente:

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


Para cualquier persona que use ZXing en su Glass, puede crear una versión desde el código fuente con la solución anterior.

Agregue el siguiente método en CameraConfigurationManager.java

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

Y llama a este método inmediatamente después de que veas Camera.setParameters () en el código ZXing. Simplemente lo puse en dos lugares en CameraConfigurationManager y funcionó.

Establecí el tamaño de la vista previa en 640x360 para que coincida con la resolución de cristal.


Puede configurar el params.setPreviewSize(1200,800) . Puede cambiar los valores alrededor de este rango hasta que pueda eliminar el ruido de color.


Por ahora, intente agregar la siguiente solución después de adquirir la Camera pero antes de configurar e iniciar la vista previa:

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

(O simplemente agregue la llamada setPreviewFpsRange a sus parámetros existentes si también está configurando otros).