- 1

Creación de Cámara Selfie con Kits de Huawei
01:10 - 2
Depuración de Aplicaciones en la Nube con Huawei Cloud Debugging
02:26 - 3

Desarrollo de Aplicaciones con Huawei Mobile Services Core
02:50 - 4

Creación de Proyecto Android Studio con Huawei Kits
02:18 - 5

Creación de Aplicaciones en AppGallery Connect de Huawei
03:28 - 6
Generación de Huella Digital SHA-256 para Android Studio
01:35 - 7

Configuración de APIs Huawei para Proyecto de Selfies en Android Studio
03:14 - 8

Configuración de Gradle para Huawei en Android Studio
09:25 - 9

Sincronización de aplicaciones con dependencias Huawei en Gradle
03:12
Creación del Motor de Lente para Selfie Cam en Android
Clase 19 de 31 • Curso de Desarrollo de Aplicaciones con Huawei
Contenido del curso
- 14

Diseño de Pantalla en Selficam con Huawei ML Kit
10:05 - 15

Permisos de Cámara en Aplicaciones Android
17:18 - 16

Configuración y Personalización de Cámaras en Android
10:20 - 17

Personalización de Interfaz Gráfica para Cámara en Android
08:05 - 18

Reconocimiento Facial con Machine Learning en Android
10:58 - 19

Creación del Motor de Lente para Selfie Cam en Android
13:16 - 20

Implementación de Layout para Actividad de Cámara en Android
11:54 - 21

Integración de Cámara y Botones en Aplicación de Selfies
12:18 - 22

Implementación de Verificación Facial en App Android
10:01 - 23

Detección de Sonrisa y Rostro en Cámaras Huawei
11:37 - 24

Detección de Rostros y Cambio de Cámara en Android Studio
10:47 - 25

Implementación de Funcionalidad de Toma y Retoma de Fotos en Android
11:27 - 26

Guardar fotos en la galería con Android y Huawei Machine Learning
07:56
¿Cómo crear el motor de lente para tu cámara de selfies?
Dar el siguiente paso en el desarrollo de tu aplicación de cámara es crear el motor de lente que dará vida a tu cámara de selfies. Este motor es fundamental para integrar funciones avanzadas como visualización en tiempo real y procesamiento de imágenes mediante machine learning con Huawei. Aquí te explicamos, paso a paso, cómo llevar a cabo este proceso dentro de tu proyecto de Android.
¿Cómo crear la clase LentsEnginePreview?
Primero, necesitas comenzar agregando una nueva clase dentro del paquete de la cámara que será denominada LentsEnginePreview. Esta clase será el núcleo del motor de lente:
public class LentsEnginePreview extends ViewGroup {
private SurfaceView surfaceView;
private boolean startRequested = false;
private boolean surfaceAvailable = false;
private LensEngine lensEngine = null;
private GraphicOverlay overlay;
// Constructor
public LentsEnginePreview(Context context, AttributeSet attrs) {
super(context, attrs);
surfaceView = new SurfaceView(context);
addView(surfaceView);
}
}
- Herencia y Contexto: Hereda de
ViewGroupy recibe uncontexty atributos en su constructor. - Variables: Define variables esenciales como
surfaceView,startRequested,surfaceAvailable,lensEngineyoverlay. - Inicialización: La superficie es inicializada creando una nueva instancia de
SurfaceView.
¿Cómo implementar funciones clave?
Una vez creadas las variables y el constructor, es momento de desarrollar las funciones que activarán y desactivarán la cámara.
Función Start
Esta función inicia el lente de la cámara con un control de excepciones en caso de fallos con el dispositivo:
public synchronized void start(LensEngine lensEngine) throws IOException {
this.lensEngine = lensEngine;
startRequested = true;
startIfReady();
}
- Excepciones: Controla los posibles errores durante el inicio de la cámara.
- Inicialización: Comprueba si el
LensEngineestá disponible e intenta iniciar el proceso de captura.
Función Stop
Detiene el motor del lente si está activo:
public synchronized void stop() {
if (lensEngine != null) {
lensEngine.release();
lensEngine = null;
}
}
Función Release
Libera los recursos asociados con la cámara:
public synchronized void release() {
if (lensEngine != null) {
lensEngine.release();
lensEngine = null;
}
}
¿Cómo configurar el Surface Callback?
El Callback de la superficie se utiliza para gestionar los cambios en el estado de la pantalla y detectar cuándo la superficie está lista para usarse:
private class SurfaceCallback implements SurfaceHolder.Callback {
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// No change management required
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
surfaceAvailable = false;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
surfaceAvailable = true;
try {
startIfReady();
} catch (IOException e) {
Log.e(TAG, "Could not start camera source.", e);
}
}
}
surfaceCreated: Marca la superficie como disponible e invocastartIfReadypara intentar iniciar elLensEngine.surfaceDestroyed: Indica que la superficie ya no está disponible.
Consejos prácticos y recomendaciones
- Manejo de Excepciones: Asegúrate de manejar adecuadamente las excepciones utilizando estructuras
try-catch. Esto garantizará un funcionamiento más robusto de la aplicación. - Optimización del Código: Mantén el código organizado y comenta donde sea necesario para facilitar la comprensión y el mantenimiento futuro.
- Experimenta con Overlay: Implementa overlays gráficos para visualizar detecciones en tiempo real y mejorar la interacción del usuario.
Continúa perfeccionando tus habilidades de desarrollo y explorando cómo puedes personalizar y optimizar el motor de lente para que se adapte mejor a tus necesidades. Convertirte en un experto tomará tiempo, pero cada paso en este viaje de aprendizaje te acerca más a dominar esta tecnología. ¡Sigue adelante!