Cómo autofocus cámara Android automáticamente?

Quiero autofocus cámara Android tan pronto como la cámara se mantiene inmóvil. Estoy buscando tutoriales o muestras de cómo hacerlo o al menos una pequeña muestra que muestra qué clases puedo utilizar para gancho en tales eventos.

Para mí esto funcionó un lujo:

//set camera to continually auto-focus Camera.Parameters params = c.getParameters(); //*EDIT*//params.setFocusMode("continuous-picture"); //It is better to use defined constraints as opposed to String, thanks to AbdelHady params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); c.setParameters(params); 

Intente utilizar Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO o Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE . Vea abajo:

 Camera.Parameters params = camera.getParameters(); if (params.getSupportedFocusModes().contains( Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); } camera.setParameters(params); 

Es importante comprobar si el teléfono es compatible con el modo elegido antes de intentar utilizarlo, de lo contrario setParameters() lanzará una excepción de tiempo de ejecución. (El código de edición funciona correctamente)

El siguiente código funciona para mí.

Ajuste del enfoque automático (clase de vista previa):

 Parameters params = camera.getParameters(); params.setFocusMode(Parameters.FOCUS_MODE_AUTO); //some more settings camera.setParameters(params); 

Llamar a la cámara para tomar una fotografía en caso de que el autofoco esté listo (clase de actividad):

 public void butClick(View v){ preview.camera.autoFocus(new AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) { if(success){ camera.takePicture(shutterCallback, rawCallback, jpegCallback); } } }); } 

Obtener imagen (clase de actividad):

 PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { //do something } }; 

Parece que debe autofoco continuo como se discute aquí.

Hay una pregunta aquí que puede hacer referencia.

Usted puede intentar el código:

 ShutterCallback _pfnShutterCallback = new ShutterCallback() { @Override public void onShutter() { // TODO Auto-generated method stub } }; PictureCallback _pfnRawPictureCallback = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub } }; private AutoFocusCallback _pfnAutoFocusCallback = new AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { // TODO Auto-generated method stub camera.autoFocus(null); camera.takePicture(_pfnShutterCallback, _pfnRawPictureCallback, mPicture); } }; private PictureCallback mPicture = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { new SavePhotoTask().execute(data); camera.startPreview(); } }; class SavePhotoTask extends AsyncTask<byte[], String, String> { // Process save file image } 

Captura de llamada: mCamera.autoFocus(autoFocusCallback);

Puede consultar en: http://android-er.blogspot.com/2011/01/start-camera-auto-focusing-autofocus.html

Esto funciona perfectamente para la devolución de llamada de vista previa:

 Camera.Parameters parameters = camera.getParameters(); if (parameters.getSupportedFocusModes().contains( Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); } camera.setParameters(parameters); 
  • Acceda simultáneamente a las cámaras frontal y posterior
  • Graba, guarda y reproduce un video en Android
  • La cámara no funciona en Android 2.2
  • No se puede usar la linterna en Galaxy Nexus
  • Cámara en Android, cómo obtener el mejor tamaño, tamaño de vista previa, tamaño de imagen, tamaño de vista, imagen distorsionada
  • Error: No se puede obtener un lockedBuffer, el cliente muy probable intenta bloquear más de buffers maxImages
  • Compruebe si el dispositivo tiene una cámara?
  • Cómo saber qué aplicación (proceso) está utilizando la cámara en Android
  • TakePicture falla con error relacionado con heap
  • Cómo acceder a la cámara específica en el teléfono móvil a través de html5
  • Cámara incorporada, utilizando el MediaStore.EXTRA_OUTPUT extra almacena imágenes dos veces (en mi carpeta, y en el valor predeterminado)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.