Cámara intergrada sin métodos obsoletos y soporte hacia atrás
Quiero crear una aplicación donde la cámara frontal del dispositivo se utiliza para proyectar la imagen actual a un SurfaceView
. Todos los tutoriales que he encontrado hasta ahora implementan esto utilizando un objeto Camera
del paquete android.hardware.
Este método, sin embargo, parece estar obsoleto. Al intentar la "nueva" manera preferida de implementar esta característica después de la documentación de Android , recibo la advertencia de que sólo se puede utilizar con el nivel de la API 21, que es bastante inútil.
- El emulador de Android nunca deshabilita la cámara
- SurfaceView vs TextureView para la cámara?
- Android dibujar en vista previa de la cámara
- La lógica subyacente del código nativo de la cámara
- Cómo capturar la imagen en miniatura Y guardar el archivo en una carpeta personalizada en Android
Por lo tanto, me gustaría conocer la forma actualmente preferida de implementar la funcionalidad de la cámara en una aplicación. ¿O existe alguna biblioteca de soporte para niveles de API inferiores a 21?
Gracias por adelantado.
- Cómo construir la aplicación de la cámara por separado de AOSP?
- OnPreviewFrame data image to imageView
- Guardar la imagen capturada en el almacenamiento interno?
- ¿Cómo usar la cámara de Android o la API de la cámara2 para admitir versiones antiguas y nuevas de la API sin notas de reprobación?
- Iónico: la cámara pide confirmación después de cada foto / toma varias tomas
- Android captura de vídeo de cámara lenta con CamcorderProfile
- ¿Cómo determino la orientación predeterminada de los marcos de previsualización de la cámara?
- Obtener Ruta de la imagen desde ACTION_IMAGE_CAPTURE Propósito
La interfaz obsoleta no significa que no deberías usarla. Significa que usted debe saber que será la eliminación gradual en el futuro.
Como regla general, es mejor utilizar una interfaz más nueva si es posible, para evitar la necesidad de actualizar el software más tarde.
El hecho de que el nivel 21 de la API aún no tenga una cuota de mercado lo suficientemente grande significa que probablemente es mejor utilizar la interfaz antigua por ahora, y tenga en cuenta que en un año o dos, puede que tenga que actualizar la implementación.
Creo que se puede implementar la función de la cámara en ambos conjuntos de API y comprobar la versión del dispositivo `s construir primero, entonces decidió llamar a una aplicación.
p.ej:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ openCameraNewAPI(); }else{ openCameraOldAPI(); }