Red de conocimiento informático - Conocimiento informático - Cómo escribir una aplicación de cámara

Cómo escribir una aplicación de cámara

Cuáles son los pasos necesarios para escribir una aplicación de cámara de vista previa:

1. Primero necesitamos crear un archivo de diseño, que es la pantalla que se muestra después de abrir la aplicación. es una demostración, nosotros El archivo de diseño también es muy simple, solo un SurfaceView, que se usa para mostrar la pantalla de vista previa de la cámara. El código es el siguiente

2. en la clase principal onCreat, y al mismo tiempo inicializa el control y llama a initView (). Después de Android 6.0, las aplicaciones deben obtener permisos del sistema, como permiso para abrir la cámara, permiso para leer y escribir en la tarjeta SD, etc. para almacenar imágenes, leer archivos de configuración, etc.).

3. Al inicializar el control SurfaceView en initView, el objeto SurfaceHold debe cargarse al mismo tiempo para monitorear el ciclo de vida de SurfaceView. Podemos cargar el proceso de inicialización relacionado con la cámara (initCamera2) en este. ubicación para abrirla más tarde Preparándose para el proceso de la cámara

4. En el proceso de inicialización de la cámara, iniciamos un hilo, configuramos el formato y la resolución de los datos de la imagen, establecemos un detector de imágenes disponible y proporcionamos una interfaz para tomarla más tarde. imágenes o procesar datos de cuadros, si solo desea obtener una vista previa, solo necesita crear un hilo, omita el paso cinco y solo mire el paso seis

5. Anule el método onImageAvailable, puede hacer algo. cosas a las que debe prestar atención Procesamiento, los datos se pueden obtener aquí y el objeto ImageRead debe cargarse en el previoRequestBuilder para hacerlo

6 Reescribimos el método onCreat en onCreat. Después de confirmar la solicitud de permiso, ingresará a la siguiente función de devolución de llamada, abrimos la cámara en esta función

7. servicio y luego llame directamente al método openCamera para abrirlo. Tenga en cuenta que el primer parámetro, cameraId, es el número de identificación de la cámara. Generalmente, 1 es la parte frontal y 0 es la trasera.

8. Después de que la función openCamera se ejecute con éxito, ingresará a la función de devolución de llamada stateCallback. Aquí hay tres métodos, correspondientes a abrir cámara, desconectar cámara y devolución de llamada de error. Cargamos la función de vista previa después de abrir la cámara e ingresamos al proceso de vista previa. y suelte CameraDevice después de desconectar la cámara

9 Ahora ingrese al proceso de vista previa de la cámara, todavía usamos La interfaz del sistema primero obtiene el generador CaptureRequest, luego carga el objeto SurfaceView en él y finalmente llama a setRepeatingRequest. método para obtener una vista previa de los datos.

(Si desea que el método del paso 5 también se ejecute, debe cargar el objeto ImageRead aquí y agregar el método

Modify

Arrays. asList (outputTarget)

a:

Arrays.asList(outputTarget, mImageReader.getSurface())