CameraX
En esta tabla, se enumeran todos los artefactos del grupo androidx.camera.
| Artefacto | Versión estable | Versión potencial | Versión beta | Versión Alfa |
|---|---|---|---|---|
| camera-camera2 | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-core | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-compose | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-effects | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-extensions | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-mlkit-vision | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-view | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.6.2 | 1.7.0-rc01 | - | - |
Cómo probar dispositivos
Se probó CameraX en muchos dispositivos de nuestro lab. Si quieres ver una lista de los dispositivos que se encuentran actualmente en el lab, consulta Dispositivos del laboratorio probados con CameraX.
Cómo declarar dependencias
Para agregar una dependencia en CameraX, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.7.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.7.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.
Camera Viewfinder Compose versión 1.0
Versión 1.0.0-alpha02
12 de junio de 2024
Lanzamiento de androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. La versión 1.0.0-alpha02 incluye estas confirmaciones.
Versión 1.0.0-alpha01
14 de mayo de 2024
Lanzamiento de androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Nueva biblioteca. Esta biblioteca presenta un elemento componible Viewfinder nativo de Compose, que se puede usar con CameraX y Camera2. El elemento de componibilidad Viewfinder admite diferentes relaciones de aspecto y el control de eventos táctiles.
Versión 1.4 de Camera Viewfinder
Versión 1.4.0-alpha07
12 de junio de 2024
Lanzamiento de androidx.camera:camera-viewfinder:1.4.0-alpha07 y androidx.camera:camera-viewfinder-core:1.4.0-alpha07. La versión 1.4.0-alpha07 incluye estas confirmaciones.
Versión 1.4.0-alpha06
14 de mayo de 2024
Lanzamiento de androidx.camera:camera-viewfinder:1.4.0-alpha06 y androidx.camera:camera-viewfinder-core:1.4.0-alpha06. La versión 1.4.0-alpha06 incluye estas confirmaciones.
Cambios en la API
- Se cambiaron los nombres de las enumeraciones
ImplementationModedeViewfinderpara reflejar mejor las implementaciones subyacentes y se agregaron constantes fijas paraTransformationInfo.sourceRotation. (Ic6149) - Se agregó
ZoomGestureDetector.ZoomEventpara encapsular los estados de un gesto de zoom. (I84cdf)
Versión 1.7
Versión 1.7.0-rc01
21 de octubre de 2026
Lanzamiento de androidx.camera:camera-*:1.7.0-rc01. La versión 1.7.0-rc01 incluye estas confirmaciones.
Cambios en la API
- Se convirtieron
UseCaseCamera2Interop,ImageCaptureCamera2Interop,SessionConfigCamera2InteropyCameraControlCamera2Interopde interfaces en clases abstractas. (If654e) - Se corrigió el problema de ambigüedad de Camera2Interop V2 (I1bbe5).
Correcciones de errores
- Se corrigió una falla nativa de
SIGSEGVen el subprocesoOpenGLdeCameraXcuando unSurfaceProcessorliberaba unSurfaceTexturede entrada cuyaSurfaceRequestse recolectaba como elemento no utilizado antes de completarse. (I76f73, b/563673593) - Se corrigió una fuga de Surface y una falla por error en código nativo
OpenGLque podía ocurrir durante la recolección de elementos no utilizados cuando se cerraba el ejecutor o elHandlerThreadde unCameraEffectantes de que se cerrara elSurfaceOutputdel efecto. (Ifcc19, b/558819242) - Mejora del comportamiento de la función de mejora con poca luz: Ahora, la función de mejora con poca luz y la linterna siguen una política de "gana el último parámetro de configuración", en la que habilitar una inhabilita automáticamente la otra en lugar de rechazar la solicitud. Además, ahora el flash se puede activar durante la captura de imágenes mientras la función Optimización para poca luz está activa. (Ie583f)
- Se actualizó la dependencia
androidx.lifecycle:lifecycle-runtimea la versión 2.10.0. Esta versión es necesaria para que las verificaciones de lint del entorno de ejecución del ciclo de vida empaquetado se ejecuten con la versión 9.5.0-alpha04 o posterior del AGP. (I99bfd, b/556807521) - Se agregó compatibilidad para obtener
CameraSelectoren cámaras físicas desdeCameraInfo.getPhysicalCameraInfos()y vincularUseCasesa cámaras físicas. Cuando se consultaCameraInfocon unCameraSelectorfísico, ahora se devuelve elCameraInfofísico en lugar delCameraInfológico. (Ibe7f2) - Se aclaró en el Javadoc de
OutputOptions.Builder.setLocationque solo la latitud y la longitud se almacenan en los metadatos de video. (I77d3b, b/551348846) - Se corrigió un error en
ImageAnalysispor el que cambiar la rotación de salida de forma dinámica o desvincular el caso de uso podía causar una fuga de recursos de Surface/ImageReader. (I25cef) CameraInfo.getIntrinsicZoomRatio()ahora redondea la proporción que se muestra a dos decimales. (Ibe9a8).- Se relajó la verificación de
HardwareBuffer.isSupportedpara el formatoPRIVATEenImageAnalysispara evitar fallas de falsos negativos en algunos dispositivos. (I347a4, b/545866947) - Se corrigió una falla de compilación en las versiones más recientes del JDK que se producía cuando se resolvían las anotaciones de tipo JSpecify importadas de forma transitiva en los campos internos de
CameraX. (I00bb4, b/543937345)
Versión 1.7.0-alpha03
12 de agosto de 2026
Lanzamiento de androidx.camera:camera-*:1.7.0-alpha03. La versión 1.7.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se dejaron de usar las APIs heredadas de Camera2Interop (
Camera2Interop.Extender,Camera2CameraControl,Camera2CameraInfoyCaptureRequestOptions) y se reemplazaron por los métodos de fábrica del configuradorCamera2Interopy las funciones de extensión de Kotlin. (Ib0845, b/529609261) - Se agregaron bloques de extensión
camera2Interopde DSL de Kotlin parapreview,imageAnalysis,videoCapture,imageCaptureySessionConfig.Builder, así como la función de extensiónCameraControl.applyCamera2InteropAsync. (I51af9, b/529609261) - Se agregaron nuevos métodos de fábrica del configurador de
Camera2Interop(forUseCase,forImageCapture,forSessionConfig,forCameraControl) y los métodossetInterop/applyInteropAsynccorrespondientes enPreview.Builder,ImageCapture.Builder,ImageAnalysis.Builder,VideoCapture.Builder,SessionConfig.BuilderyCameraControl. (I0007b, b/529609261) - Se agregaron métodos auxiliares a
Camera2Interopy propiedades de extensión de Kotlin equivalentes (CameraInfo.cameraId,CameraInfo.cameraCharacteristicsyString.toCameraSelector()) para recuperar el ID y las características de la cámara de Camera2 desdeCameraInfo. (I11803, b/529609261) - Se agregaron
Preview.setMirrorMode,Preview.getMirrorModeyVideoCapture.setMirrorModea las APIs públicas, y se quitó la anotaciónExperimentalMirrorMode. (I4ed60, b/519794349, b/470629643) - Se agregaron los compiladores de DSL de Kotlin
preview{ ... },imageCapture{ ... },imageAnalysis{ ... } yvideoCapture{ ... } para crearUseCases. (I91df9, b/530013719) - Se modificó ImagePlane.buffer para que sea un ByteBuffer que no admita valores nulos. (I98593).
- Se dieron de baja los métodos get de propiedades en
SessionConfig.Builder,HighSpeedVideoSessionConfig.BuilderyExtensionSessionConfig.Builderen el DSL de Kotlin para aplicar propiedades de solo escritura. (I2875b, b/534570559)
Correcciones de errores
- Se solucionó un problema por el que la vinculación de varios casos de uso de
Previewcon unOverlayEffectcausaba un error de entrega de transmisión de vista previa. (I7a383, b/532577546, b/532924417) - Se solucionó un problema por el que
Recording.pause()yRecording.resume()fallaban cuando se cambiaban las cámaras durante una grabación de video persistente. (I71004, b/532327691, b/367121726) - Se corrigieron las fallas de la HAL cuando se usaba el retraso de obturación cero (ZSL) mientras se hacía zoom en los límites de la cámara física en dispositivos con varias cámaras. (I1c374, b/527782712, b/514757157)
- Se solucionó un problema por el que la grabación de video en HDR podía fallar en los dispositivos Samsung Galaxy S25, S26 y Fold 7. (Ic0827, b/529618629)
Versión 1.7.0-alpha02
1 de julio de 2026
Lanzamiento de androidx.camera:camera-*:1.7.0-alpha02. La versión 1.7.0-alpha02 incluye estas confirmaciones.
Cambios en la API
CameraXViewfinderahora admite gestos integrados para pellizcar para hacer zoom y presionar para enfocar, y agrega compatibilidad con el flash de pantalla y el estado de la transmisión.FocusStateahora es público en viewfinder-core para permitir la supervisión de los resultados de presionar para enfocar. (I66a17, b/522549890)- Se agregó
isAutoRotationEnabledaSessionConfig.Builder,HighSpeedVideoSessionConfig.BuilderyExtensionSessionConfig.Builder, y se introdujeron funciones de fábrica de DSL de Kotlin para ellos. Esto permite establecer la rotación adecuada automáticamente según los sensores del dispositivo. (I5b4a3, b/510752515) - Se agregó la propiedad
TransformationModeaTransformationInfopara que las apps admitan el uso de la canalización deOpenGLen el modoEMBEDDED. (Id1de1, b/487826941) - Se agregaron
isNightModeIndicatorSupported()ygetNightModeIndicator()aCameraInfopara determinar cuándo las condiciones del entorno cumplen con los criterios del modo nocturno. (Iae47b, b/499389465) - Se expusieron ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE e ImageProxy.getHardwareBuffer() como API pública para admitir ImageAnalysis basado en GPU. (I41cb3, b/496022391, b/492934501)
- ExtensionsManager#getExtensionEnabledCameraSelector ahora está obsoleto. Usa la nueva API de ExtensionSessionConfig para habilitar los modos de extensión. (I2b336, b/473715607)
- Se agregó compatibilidad con el diseño visual de los fotogramas de la cámara durante la composición de la cámara simultánea. Ahora puedes personalizar lo siguiente:
- Esquinas redondeadas: Usa setRoundedCornerRatio(float) para aplicar un redondeo normalizado (de 0.0 a 1.0) a los bordes del marco.
- Bordes: Usa setBorderWidthRatio(float) y setBorderColor(int) para agregar un marco decorativo con un grosor coherente (I18a07, b/366349205).
- Se actualizó CompositionSettings para aplicar un orden z no negativo y se agregó validación a ConcurrentCamera.setCompositionSettings para garantizar que se llame con la cantidad correcta de parámetros de configuración en un modo de composición válido. (If660d, b/496951658)
- Se agregaron getNightModeIndicator() e isNightModeIndicatorAvailable() a CameraExtensionsInfo para permitir que las aplicaciones supervisen si el entorno actual se encuentra en una condición de modo nocturno cuando se usan extensiones de cámara. (I62bb4, b/499389465)
- Se agregó compatibilidad con la calidad de video
QHDen VideoCapture. (I0ac20, b/501305592) - Se agregaron
Recorder.Builder.setTargetAudioChannelCount(int)yRecorder.getTargetAudioChannelCount()para permitir que los desarrolladores establezcan un recuento explícito de canales de audio. (I6bee0, b/441895100) - Se agregó
Recorder.Builder.setTargetAudioEncodingBitRate(int)para permitir la configuración de una tasa de bits de codificación de audio objetivo. (I29062, b/241151504). - Se agregó la API de ConcurrentCamera.setCompositionSettings para permitir que las apps actualicen la composición de la cámara actual de forma dinámica después de que se haya vinculado el ciclo de vida. Además, una nueva API de setZOrder en CompositionSettings.Builder permite controlar con precisión el orden de renderización de las transmisiones de la cámara superpuestas. (I90528, b/473702287)
- Se introdujeron APIs para el control detallado de los formatos de codificación. Ahora, los desarrolladores pueden descubrir los formatos compatibles con el dispositivo usando
Recorder.getSupportedVideoMimeTypes()ygetSupportedAudioMimeTypes(), que actualmente son experimentales. Los formatos preferidos se pueden configurar de forma explícita a través deRecorder.Builder.setVideoMimeType()ysetAudioMimeType(). Además,Recorder.getVideoCapabilities(CameraInfo, String)permite consultar las capacidades específicas de la cámara, como las calidades y los rangos dinámicos admitidos, para un códec elegido. (I4620e, b/491319384) - Se agregó CameraController.setAutoRotationEnabled(boolean) para permitir inhabilitar el objeto de escucha de rotación automática del dispositivo. (Ia0c03, b/449573627)
- Se agregó compatibilidad con el bloqueo de AE/AWB en FocusMeteringAction a través de una nueva API de setLockingMode. Esto también permite actualizar las regiones de 3A sin bloquear el enfoque, lo que permite que la cámara permanezca en el modo de enfoque automático continuo mientras se actualiza el área de enfoque. (I6416f, b/481624745)
Correcciones de errores
- Se quitó el requisito de
compileSdk 37(If78b4). - Se corrigieron los problemas de transformación de
CameraXViewfinderen el modoEMBEDDEDcuandoCameraXhabilita la canalización deOpenGLpara vincular másUseCaseso procesar superficies. (I3e637, b/487826941) - Se actualizaron las pruebas y las actividades para usar ExtensionSessionConfig en lugar de la API obsoleta getExtensionEnabledCameraSelector. (I765d8, b/473715607)
- Se corrigió un error de compilación "Cannot access class 'ListenableFuture'". (Ic8cba, b/497571473)
- Se actualizó compileSdk de Compose a la API 37. Esto significa que se requiere una versión mínima de AGP de 9.2.0 cuando se usa Compose. (Id45cd, b/413674743)
Versión 1.7.0-alpha01
11 de marzo de 2026
Lanzamiento de androidx.camera:camera-*:1.7.0-alpha01. La versión 1.7.0-alpha01 incluye estas confirmaciones.
Cambios en la API
- Se expuso la API de
CameraController.setSessionConfig(). Esto permite proporcionar unSessionConfigpersonalizado para configuraciones avanzadas deUseCasequeCameraControllerno expone directamente. Cuando unSessionConfigestá activo, se inhabilitan otros métodos de configuración enCameraController.(I35cf1, b/448525636)
Correcciones de errores
- Se movieron las bibliotecas para usar el destino de Java 11. Esto significa que el código de bytes producido será Java 11 (versión de archivo de clase 55) y podría requerir una expansión de sintaxis para usar la biblioteca (If4c2a, b/457821470).
- Se corrigió un error en
ImageAnalysispor el que las imágenes no se rotaban correctamente cuando se habilitaba la rotación de la imagen de salida y la rotación relativa inicial era de 0 grados. (Id46c2, b/487160584)
Camera versión 1.6
Versión 1.6.2
26 de agosto de 2026
Lanzamiento de androidx.camera:camera-*:1.6.2. La versión 1.6.2 incluye estas confirmaciones.
Correcciones de errores
- Se corrigió una falla de compilación en las versiones más recientes del JDK que se producía cuando se resolvían las anotaciones de tipo JSpecify importadas de forma transitiva en los campos internos de
CameraX. (I00bb4, b/543937345)
Versión 1.6.1
6 de mayo de 2026
Lanzamiento de androidx.camera:camera-*:1.6.1. La versión 1.6.1 incluye estas confirmaciones.
Correcciones de errores
- Se corrigió un error de compilación "No se puede acceder a la clase
ListenableFuture" cuando se usa CameraX 1.6.0. (Ic8cba, b/497571473)
Versión 1.6.0
25 de marzo de 2026
Lanzamiento de androidx.camera:camera-*:1.6.0. La versión 1.6.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.5.0:
1. Migración a una pila de cámaras unificada de alto rendimiento
- Ahora CameraX usa
CameraPipe, la misma pila moderna y de alto rendimiento que potencia la cámara del Pixel. Esta transición optimiza la eficiencia de la arquitectura y proporciona una base escalable para llevar funciones avanzadas de fotografía computacional al ecosistema de desarrolladores.
2. Integración del multiplexor de Media3
- Ahora, CameraX integra el multiplexor de Media3 de forma predeterminada en la API de VideoCapture. Esta migración proporciona varios beneficios:
- Rendimiento mejorado: Procesamiento y multiplexación de video más eficientes.
- Resiliencia ante fallas: Se mejoró la protección contra daños en los archivos de video, lo que garantiza que los datos se conserven incluso si la aplicación falla durante la grabación.
3. Mejora del grupo de atributos
- La API de Feature Group ahora admite la estabilización de video y la grabación en 4K.
GroupableFeaturesincluyeVIDEO_STABILIZATION,UHD_RECORDINGpara permitir que las apps las habiliten junto con otras funciones.CameraEffectyImageAnalysisenSessionConfigse admiten cuando el grupo de atributos está habilitado.
4. Se estabilizó la API de SessionConfig.
SessionConfigpasó de ser experimental a una API pública completamente estable, incluidasSessionConfigyHighSpeedVideoSessionConfig. Ahora, las extensiones de CameraX se pueden implementar con una nueva API deExtensionSessionConfig. Se introdujo una nueva API deisSessionConfigSupported, que permite a los desarrolladores consultar si el dispositivo admite una combinación específica de casos de uso y funciones (como HDR, estabilización, resoluciones específicas, extensiones de CameraX o cámara lenta) antes de vincularse al ciclo de vida.
Correcciones de errores
- Se corrigió una falla que se producía en ciertos dispositivos con Android 17 (nivel de API 37) o versiones posteriores. Cuando estos dispositivos exponen nuevos perfiles de rango dinámico (p.ej., STANDARD_SMPTE_2094_50(ID 8192)) que eran desconocidos para la versión 1.5.1 y anteriores de CameraX, la biblioteca no podía controlar estos IDs de forma adecuada, lo que generaba un
NullPointerExceptionoIllegalArgumentExceptionduranteProcessCameraProvider.bindToLifecycle(). Esta corrección permite que CameraX ignore de forma correcta los perfiles de rango dinámico no reconocidos, lo que evita la falla y mantiene la compatibilidad con versiones posteriores. Actualiza tu dependencia de CameraX a la versión 1.5.2 o 1.6.0 (o posterior) para evitar este problema en los dispositivos que exponen estos nuevos perfiles. Para obtener más detalles, consulta el problema 519796838. (Ibd7b5) - La API de grupos de atributos ahora proporciona resultados coherentes cuando se usa
PREVIEW_STABILIZATIONconVideoCapture. Esto corrige un error que causaba resultados incoherentes cuando un caso de uso de Preview no estaba activo. (Ifed82, b/449913903) - Se solucionó un problema por el que se habilitaban de forma incorrecta las funciones preferidas no compatibles. Ahora, las funciones se filtran correctamente cuando no se cumplen los casos de uso requeridos. (I38db8, b/449532342)
- Se corrigió el problema por el que se obtenía un resultado de video con fallas en el Samsung Galaxy S6. (I612d9, b/235127608)
- Se solucionó un problema por el que
CameraInfo#isFeatureGroupSupportedpodía devolver de forma incorrecta el valor verdadero paraPREVIEW_STABILIZATIONsi elSessionConfigde la consulta ya estaba configurado con otras funciones. (I2c355c, b/437816469) - Se excluyeron los tamaños de salida de formato YUV problemáticos del dispositivo Samsung Z Fold 4. Las imágenes recibidas tienen problemas de distorsión cuando se usan esos tamaños de salida. (I776bf, b/460322307)
- Se solucionó un problema específico del dispositivo Samsung A53 en el que, a veces, fallaba la captura de imágenes con la linterna habilitada si se vinculaba el caso de uso de
VideoCapture. (I0f183, b/458197367) - Se solucionó un problema que se producía en algunos dispositivos, por el que el uso del flash con la cámara ultra gran angular podía generar imágenes subexpuestas. (Ib7530, b/444590340)
- Se actualizó la dependencia
ExifInterfacepara incluir una corrección para analizar archivos JPEG con padding0xFF, lo que resuelve las fallas de captura de imágenes en dispositivos en los que el codificador JPEG agrega bytes de relleno antes de los marcadores. (I0eb49).
Versión 1.6.0-rc01
25 de febrero de 2026
Lanzamiento de androidx.camera:camera-*:1.6.0-rc01. La versión 1.6.0-rc01 incluye estas confirmaciones.
Versión 1.6.0-beta02
11 de febrero de 2026
Lanzamiento de androidx.camera:camera-*:1.6.0-beta02. La versión 1.6.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el problema de captura en memoria de
ImageCaptureOUTPUT_FORMAT_RAW_JPEGIllegalArgumentException. (Id4eec, b/479990902) - Se migró al multiplexor de AndroidX Media3. Esto corrigió 1: daños en el video durante interrupciones inesperadas o la finalización de la app y 2: fallas cuando se guardan videos en descriptores de archivos proxy. (I23b63, b/433649708, b/264812009, b/475750115)
Versión 1.6.0-beta01
28 de enero de 2026
Lanzamiento de androidx.camera:camera-*:1.6.0-beta01. La versión 1.6.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el problema de tipo actual de
CameraExtensionsInfoen CameraX 1.6.0-alpha por el que el objeto LiveData no puede recibir los datos de tipo actualizados. (I2c7a5) - Se actualizó la dependencia de ExifInterface para incluir una corrección que permite analizar archivos JPEG con relleno de 0xFF, lo que resuelve los errores de captura de imágenes en dispositivos en los que el codificador JPEG agrega bytes de relleno antes de los marcadores. (I0eb49).
Versión 1.6.0-alpha02
17 de diciembre de 2025
Lanzamiento de androidx.camera:camera-*:1.6.0-alpha02. La versión 1.6.0-alpha02 incluye estas confirmaciones.
Nuevas funciones
- Se agregó una función agrupable para indicar la función de estabilización de video en una configuración de sesión. Ahora, los desarrolladores pueden solicitar la estabilización de video como una función obligatoria o preferida, lo que la alinea con otras funciones agrupables, como UHD_RECORDING y PREVIEW_STABILIZATION. (Ic6757, b/419766630)
- Se agregaron funciones agrupables para indicar la calidad de la grabación de video en una configuración de sesión. Ahora los desarrolladores pueden solicitar una calidad específica (p.ej., UHD o FHD) como una función obligatoria o preferida, lo que la alinea con otras funciones agrupables, como HDR y 60 FPS. (Ib5cd3, b/437820285)
- Se agregó compatibilidad para usar la API de
CameraEffecty la de grupos de atributos enSessionConfig. (I17f18, b/406370934) - Se agregó compatibilidad para usar la API de
ImageAnalysisy la de grupos de atributos enSessionConfig. (I87833, b/406371720)
Cambios en la API
- Se agregó la función set
addUseCaseparaExtensionSessionConfig.Buildery se agregaron los métodos get faltantes paraExtensionSessionConfig. (I71e07, b/453988621) - Se agregó la API de
ExtensionsManager.getInstance, que es una versión de suspensión deExtensionsManager.getInstanceAsync(I3a0a9, b/452208792). - Se cambió el nombre de
isFeatureGroupSupportedaisSessionConfigSupportedy se hizo compatible con cualquier tipo deSessionConfig. (I21616, b/448781299) - Se convirtió
ExtensionsManageren una implementación de Kotlin. (I73091, b/452208792) - Se agregó
CameraProvider#getCameraInfo(CameraSelector, SessionConfig)para recuperarCameraInfocuandoSessionConfigpuede afectar la selección de la cámara. Por ejemplo, cuando se usa unExtensionSessionConfig. (Ic548c, b/451891648) - Se expuso la API de
ExtensionSessionConfig. Las apps pueden crear unExtensionSessionConfigy usarlo para crear una sesión de extensiones ahora. (I6354c, b/448524373) - La API de
androidx.camera.video.HighSpeedVideoSessionConfigya no es experimental y ahora es una API pública completamente estable. (I492d4, b/447558239) - La API de
androidx.camera.core.SessionConfigya no es experimental y ahora es una API pública completamente estable. (Idc87a, b/447558437)
Correcciones de errores
- Se corrigió una falla que se producía debido a una
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:en Android 17 o versiones posteriores. (Ibd7b5, b/463465353) - Se excluyeron los tamaños de salida de formato YUV problemáticos del dispositivo Samsung Z Fold 4. Las imágenes recibidas tienen problemas de distorsión cuando se usan esos tamaños de salida. (I776bf, b/460322307)
- Se corrigió un error por el que no se aplicaba
CaptureRequest.FLASH_MODEcuando se configuraba a través de la API deCamera2Interop. (I0004c, b/459608684) - Se solucionó un problema específico del dispositivo Samsung A53 en el que, a veces, fallaba la captura de imágenes con la linterna habilitada si se vinculaba el caso de uso de
VideoCapture. (I0f183, b/458197367) - Se solucionó un problema que se producía en algunos dispositivos, por el que el uso del flash con la cámara ultra gran angular podía generar imágenes subexpuestas. (Ib7530, b/444590340)
Versión 1.6.0-alpha01
22 de octubre de 2025
Lanzamiento de androidx.camera:camera-*:1.6.0-alpha01. La versión 1.6.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- CameraX migró a una pila de Cámara Pixel unificada y de alto rendimiento, que también usa la app de Cámara Pixel. Conocida como
CameraPipe, esta nueva pila es una colaboración entre los equipos de CameraX y Cámara Pixel. Esto garantiza que se compartan todas las mejoras, lo que beneficia tanto a los usuarios de CameraX como a la app de Cámara Pixel.
Cambios en la API
- Se agregaron nuevas APIs para la detección dinámica de adición y eliminación de cámaras. Consulta la API de
CameraPresenceListenerpara obtener más detalles. (I41ead, b/427182232, b/419441394)
Correcciones de errores
- La API de grupos de atributos ahora proporciona resultados coherentes cuando se usa
PREVIEW_STABILIZATIONconVideoCapture. Esto corrige un error que causaba resultados incoherentes cuando un caso de uso dePreviewtampoco estaba activo. (Ifed82, b/449913903) - Se solucionó un problema por el que se habilitaban de forma incorrecta las funciones preferidas no compatibles. Ahora, las funciones se filtran correctamente cuando no se cumplen los casos de uso requeridos. (I38db8, b/449532342)
- Se corrigió el problema por el que se obtenía un resultado de video con fallas en el Samsung Galaxy S6. (I612d9, b/235127608)
- Se solucionó un problema por el que
CameraInfo#isFeatureGroupSupportedpodía devolver de forma incorrecta el valor verdadero paraPREVIEW_STABILIZATIONsi elSessionConfigde la consulta ya estaba configurado con otras funciones. (I2c355c, b/437816469)
Versión 1.5 de la cámara
Versión 1.5.3
28 de enero de 2026
Lanzamiento de androidx.camera:camera-*:1.5.3. La versión 1.5.3 incluye estas confirmaciones.
Correcciones de errores
- Se actualizó la dependencia de ExifInterface a la versión 1.4.2. Esto corrige un error de captura de imágenes que se produce en dispositivos que generan archivos JPEG con bytes 0xFF adicionales (y permitidos) antes de un marcador. (I16df4)
Versión 1.5.2
4 de diciembre de 2025
Lanzamiento de androidx.camera:camera-*:1.5.2. La versión 1.5.2 incluye estas confirmaciones.
Correcciones de errores
- Se corrigió una falla que se producía debido a una
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:en Android 17 o versiones posteriores. (Ic9184) - Se corrigió un error que generaba resultados incoherentes de la API de grupos de funciones cuando se agregaba la función
PREVIEW_STABILIZATIONcon el caso de usoVideoCapture, pero sin el caso de usoPreview. (Ifed82) - Se corrigió un problema por el que no se filtraban las funciones preferidas, a pesar de que no se incluían los casos de uso necesarios para que se admitieran las funciones. (I38db8).
Versión 1.5.1
8 de octubre de 2025
Lanzamiento de androidx.camera:camera-*:1.5.1. La versión 1.5.1 incluye estas confirmaciones.
Correcciones de errores
- Admite
CameraEffecten el modo de composición de cámara simultánea. El efecto se aplicará en el resultado de la composición. Ten en cuenta que se ignorarámirrorModeenVideoCapturecuando se establezca el efecto en el modo de composición de cámara simultánea. (If3d00, b/425565129) - Se solucionó el problema por el que
mirrorModeno se aplicaba correctamente a la cámara secundaria en el modo de composición de cámaras simultáneas. (I686cd, b/446430827) - Se agregó compatibilidad con la vinculación de
Preview,ImageCaptureyVideoCaptureen el modo de cámara simultánea sin composición. (Ib410a, b/443009871) - Se solucionó un problema por el que los UseCases, como
ImageCaptureyVideoCapture, perdían la información de rotación de destino si se volvían a crear. Esto podría hacer que las imágenes o los videos tengan una orientación incorrecta si se cambió un parámetro de configuración comoimageCaptureModedespués de rotar el dispositivo. (I477c8, b/444734537) - Se corrigió un problema que impedía que Preview seleccionara resoluciones de 16:9 y que
VideoCapturegrabara en QUALITY_1080P. Este problema se producía cuando se usaba una configuración de resolución de vista previa predeterminada mientras la función internaStreamSharingestaba activa (p.ej., cuando se vinculaban cuatro UseCases de forma simultánea). (I493cb, b/440364875) - Se corrigió la falla que se producía cuando se activaba el efecto después de que se cerraba
SurfaceProcessor(I2c450, b/414150174). - Se corrigió un error en
CameraControllerque causaba unaIllegalStateExceptioncuando un UseCase inicial seleccionaba la resolución máxima, lo que impedía que se vincularan otros UseCases. (Ifb758, b/440374234) - Se excluyeron los tamaños de salida YUV_420_888 problemáticos para el Nokia 7 Plus que causan el problema de falla silenciosa sin que se informen mensajes de error. (I3af47, b/436524501)
- Se solucionó un problema por el que
CameraInfo#isFeatureGroupSupportedpodía devolver un valor verdadero incorrecto para la funciónPREVIEW_STABILIZATION. Esto podía ocurrir, en ocasiones, cuando se realizaba una consulta con unSessionConfigque ya estaba configurado con otras funciones. (I2c355, b/437816469) - Se mejoró la estabilidad de
CameraXViewfinderen niveles de API anteriores y dispositivos con problemas deSurfaceView, ya que se usaTextureViewde forma predeterminada en esos casos. Este mecanismo de resguardo es el nuevo valor predeterminado, pero se puede anular de forma programática. (Ieb476, b/437496463) - Se corrigió una fuga de memoria en
PreviewViewque podía impedir que se recolectaran los elementos no utilizados de su actividad. Esto sucede si llega unSurfaceRequestnuevo antes de que se controle el anterior. (I4aa0b,b/443112512) - Se corrigió un error por el que fallaba la grabación en alta velocidad o en cámara lenta en los dispositivos Huawei P smart, Infinix Hot 40i y Realme C53. (40a668e, b/442984200)
Versión 1.5.0
10 de septiembre de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0. La versión 1.5.0 incluye estas confirmaciones.
Cambios importantes desde la versión 1.4.0:
- Grabación en alta velocidad y en cámara lenta: Integra fácilmente la grabación de video en alta velocidad (120/240 fps) y en cámara lenta con un código mínimo. Consulta
Recorder#getHighSpeedVideoCapabilities(CameraInfo)yHighSpeedVideoSessionConfigpara obtener más información. - APIs de
SessionConfigyFeatureGroup: La nueva API deSessionConfigte permite configurar la sesión de la cámara y habilitar varias funciones juntas de forma segura, como HLG (HDR), UltraHDR, 60 FPS y estabilización de la vista previa. También puedes establecer un grupo de funciones preferible con prioridad, lo que permite que CameraX determine la combinación óptima compatible. ConsultaSessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupyCameraInfo#isFeatureGroupSupported(SessionConfig)para obtener más información. - API de Deterministic Frame Rate: Aborda las limitaciones anteriores con
setTargetFrameRateusandoCameraInfo.getSupportedFrameRateRanges(sessionConfig)para consultar ySessionConfig.setExpectedFrameRateRangepara establecer velocidades de fotogramas precisas y compatibles. - Extensiones de la cámara: El formato Ultra HDR ahora es compatible con las extensiones. Verifica
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()y habilítalo enImageCapture.Builder.setOutputFormat. Las capacidades de relación de zoom y estabilización de la vista previa ahora se reflejan cuando se habilitan las extensiones. - Intensidad de la linterna: Ajusta la intensidad de la linterna con
CameraControl.setTorchStrengthLevel. - Modo mejorado con poca luz: Puedes habilitar el modo mejorado con poca luz(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) con las siguientes APIs: ConsultaCameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateyCameraControl#enableLowLightBoostAsync. - Captura de video: Ahora se activa
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEcuando no hay suficiente almacenamiento durante la grabación.PendingRecording.withAudioEnabled(boolean initialMuted)permite controlar el estado de silencio inicial de la grabación de audio. - Captura de imágenes: Se agregó compatibilidad con los formatos DNG (RAW) y JPEG + DNG (RAW) en
ImageCapture. ConsultaImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()para ver si es compatible con RAW. Usa APIs detakePicturesobrecargadas con variosOutputFileOptionspara la captura de RAW+DNG. - Análisis de imágenes: Se agregó compatibilidad con el formato NV21 en
ImageAnalysis. Habilítala conImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
Versión 1.5.0-rc01
13 de agosto de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0-rc01. La versión 1.5.0-rc01 incluye estas confirmaciones.
Correcciones de errores
- Se cambió el minSdk predeterminado de la API 21 a la API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- Se quitó la restricción de salida de 10 bits para el modo de exposición automática de mejora con poca luz. Ahora las aplicaciones pueden habilitar ambas funciones de forma simultánea en los dispositivos compatibles. (I5a638)
- Se resolvió un problema que causaba que los dispositivos con chipsets
UniSocse bloquearan cuando se capturaba una imagen. El problema se produjo cuando se usaronVideoCapture,PreviewyImageCapturede forma simultánea con todas las transmisiones configuradas en una resolución de 1280 x 720. (Ia00c4, b/380802479) - Se corrigió un error que mostraba una pantalla negra en la vista previa cuando no se configuraba una velocidad de fotogramas alta para la grabación en cámara lenta o a alta velocidad. (cdf0ff2e9)
- Se mejoraron el manejo de errores y el registro en
getViewportAspectRatioInt(82fca18).
Versión 1.5.0-beta02
16 de julio de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0-beta02. La versión 1.5.0-beta02 incluye estas confirmaciones.
Cambios en la API
- Se agregaron nuevas APIs para establecer o consultar grupos de funciones de alta calidad de forma más intuitiva y precisa, ya que es posible que estas funciones no se admitan como una combinación en todos los dispositivos.
SessionConfigahora contiene nuevas APIs para indicar si un grupo de funciones es obligatorio o preferido. La API deCameraInfo.isFeatureGroupSupportedpermite saber si se admite un grupo de funciones antes de vincular unSessionConfig.SessionConfigtambién permite configurar un objeto de escucha para saber qué funciones se seleccionan finalmente cuando se vincula una configuración de sesión. (Ie4d60) - Se agregaron las nuevas APIs
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)yCameraInfo.getSupportedFrameRateRanges(SessionConfig), que permiten a los desarrolladores consultar las velocidades de fotogramas admitidas garantizadas restringidas por unSessionConfigespecífico y, luego, aplicar la velocidad de fotogramas enSessionConfig. (Ieacf7) - Se introdujo la nueva API de
SessionConfig, que incluye una mejor abstracción para configurar casos de uso, parámetros de sesión,CameraEffect,ViewPort, etc. Vincular unSessionConfiga un LifecycleOwner abre la sesión de la cámara, la configura con los casos de uso y los parámetros de sesión especificados, y aplica losCameraEffectyViewPortdesignados. Cuando actualizas unSessionConfignuevo al mismoLifecycleOwner, puedes vincular unSessionconfignuevo sin necesidad de invocar primero la desvinculación ounbindAll. (Iedfc3) - Se agregaron nuevas APIs para grabar videos en alta velocidad o en cámara lenta. Consulta la API de
HighSpeedVideoSessionConfigpara obtener más detalles. (Ia16f3)
Correcciones de errores
- Se corrigió la API de
ImageCaptureCapabilities#getSupportedOutputFormats()que informaba que los formatos RAW eran compatibles con algunos dispositivos que, en realidad, no tienen capacidad para RAW. (Ibcadb) - Se corrigió la fuga de memoria que se produce cuando se usa
PreviewView, se habilitaCameraEffecto se vinculan 4 casos de uso(StreamSharing) (I87468). - Se corrigió una falla de grabación de video de
AssertionError: Estado de audio interno no válido: IDLING. (I38d4b, b/414259796) - Se corrigió el problema por el que, cuando la app se ejecutaba en una pantalla externa y el dispositivo estaba en modo horizontal, la vista previa en
PreviewViewse estiraba o se mostraba de costado (Ia917a). - Se solucionó el problema por el que la configuración de estabilización de la vista previa no se aplicaba correctamente cuando la transmisión de la cámara se compartía entre Preview y VideoCapture (I5430e).
CameraXViewfinderahora controla correctamente el reemplazo de la superficie en elViewfindersubyacente. Esto abarca situaciones como cuando un visor deEXTERNALen el nivel de API 28 o anterior se mueve fuera de la pantalla o si unCameraXViewfinder(con cualquierImplementationMode) forma parte demoveableContentOf(). En los casos en que no se pueda mantener activa laViewfinderSurfaceSessionsubyacente, elCameraXViewfinderinvalidará laSurfaceRequestde CameraX actual, lo que permitirá que CameraX use la nuevaSurface. (I79432).- Se corrigió un problema en Android 10/11 en el que
EXTERNALCameraXViewfinderpodía aparecer estirado o incorrecto debido a que las operaciones de transformación (como escalar o traducir) se aplicaban demasiado pronto. Ahora, el sistema espera a que se cree la Surface antes de aplicar estas transformaciones en la fase de diseño, lo que garantiza un resultado correcto. (Icc77c) - El elemento de componibilidad
CameraXViewfinderahora funciona correctamente conPagerde Compose. Este cambio garantiza que la función de componibilidad se pueda restablecer correctamente implementando la devolución de llamadaonResetdeAndroidView, lo que admite las implementaciones deEMBEDDEDyEXTERNAL. (I0d9be). - Se corrigió una fuga del propietario del ciclo de vida que se produce cuando se desvinculan casos de uso de un propietario del ciclo de vida sin cerrar el proveedor de la cámara.
Versión 1.5.0-beta01
7 de mayo de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0-beta01. La versión 1.5.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Los proyectos lanzados con Kotlin 2.0 requieren KGP 2.0.0 o una versión posterior para consumirse (Idb6b5).
- Ahora se pueden usar
ContentScaley Alignment en el visor para escalar y colocar la superficie que se muestra dentro de su contenedor, de manera similar a como se comportaandroidx.compose.foundation.Image. (Ibcea3) TransformationInfoahora tiene valores predeterminados para todos los argumentos. Esto permitirá que se creen Viewfinders sin ningúnTransformationInfo, que se establecerá de forma predeterminada en una rotación de origen de 0, sin duplicación de origen ni rectángulo de recorte. (I2b1b2)- Se agregó
LifecycleCameraProvider, que es un proveedor de cámara que se puede instanciar con diferentes parámetros de configuración para funciones como acceder a la cámara de un dispositivo virtual con un contexto personalizado. (Ia2992)
Correcciones de errores
- Se corrigió el problema de congelamiento de la vista previa cuando se usaba
ImageAnalysiscon otra transmisión que usabaTEMPLATE_RECORDen el dispositivo Samsung SM-E556B. (Ic0e62, b/409478042) - Se solucionó el problema de la vista previa que se congelaba cuando se usaba
ImageAnalysiscon otra transmisión que usabaTEMPLATE_RECORDen el dispositivo Samsung SM-M556B. (Ic1a6a, b/395822788) - Se corrigió el problema
AssertErrordel modo NOCTURNO de Extensions en dispositivos Pixel con Android 15 cuando se realizan operaciones relacionadas con el zoom. (I27a5d, b/401460276) - Se corrigió el problema de las coordenadas incorrectas del cuadro delimitador del Analizador de ML Kit cuando se usa
CameraController. (Iae91b, b/409808510)
Versión 1.5.0-alpha06
26 de febrero de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha06. La versión 1.5.0-alpha06 incluye estas confirmaciones.
Cambios en la API
- Se agregaron
CameraInfo.getTorchStrengthLevel,CameraInfo.getMaxTorchStrengthLevelyCameraControl.setTorchStrengthLevelpara permitir personalizar el brillo de la linterna (I00878). - Se agregó una nueva API,
CameraController#setTapToFocusAutoCancelDuration, para que los usuarios puedan controlar el comportamiento de cancelación automática de los eventos de presionar para enfocar dePreviewView. De forma predeterminada, CameraX cancela los eventos de enfoque después de 5 segundos (es decir, se restablece el enfoque de la cámara) y esta API permite modificar esa duración o inhabilitar la cancelación automática por completo. (Icf59a) - Se cambió el nombre de
FLASH_STATE_READYporNOT_FIREDy se simplificaron los otros nombres de constantes deFlashStatepara mejorar la legibilidad. (I8771d) - Se expuso la API de Low Light Boost. Los dispositivos que ejecutan Android 15 o versiones posteriores pueden proporcionar compatibilidad con la mejora de poca luz. Esta función puede ajustar automáticamente el brillo de los flujos de análisis de vista previa, video o imagen en condiciones de poca luz. Las aplicaciones pueden usar la nueva API para lo siguiente: 1. Usa
CameraInfo#isLowLightBoostSupportedpara verificar la disponibilidad de la función. 2. UsaCameraControl#enableLowLightBoostAsyncpara habilitar el modo cuando los dispositivos lo admitan. 3. UsaCameraInfo#getLowLightBoostStatepara supervisar el estado de la mejora con poca luz. (I937ed) - Se agregaron clases de compatibilidad para permitir consultas más rápidas que no sean de camera2 en camera-feature-combination-query. (Ie97ee)
- Para los eventos de presionar para enfocar de
CameraController, una nueva APIgetTapToFocusInfoState()ahora también expone la posición de presión correspondiente, ya que devuelve unLiveDatade la claseTapToFocusInfo, mientras que la API anteriorLiveData<Integer>que devuelvegetTapToFocusState()dejó de estar disponible en favor de la nueva API. (I238d2)
Correcciones de errores
- Se corrigió el problema por el que no se aplicaba la estabilización de la vista previa cuando se habilitaba con extensiones. (I24ad7).
- Se corrigió el evento de estado de enfoque
CameraControllerque no se restablecía aTAP_TO_FOCUS_NOT_STARTEDcuando CameraX cancelaba automáticamente un evento de enfoque que se producía después de 5 segundos de forma predeterminada. (I31954). - Se corrigió el congelamiento de la vista previa cuando se usa el retraso sin obturador (ZSL) después de varias capturas debido a recursos de imagen no publicados. (Ic3c2a).
- Se corrigieron problemas que hacían que, en algunos dispositivos, los videos en UHD tuvieran un tono rojo cuando la canalización involucraba
OpenGL. (Idcedc).
Versión 1.5.0-alpha05
15 de enero de 2025
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha05. La versión 1.5.0-alpha05 incluye estas confirmaciones.
Cambios en la API
- Agrega
VideoCapture.getSelectedQuality()para conocer la calidad seleccionada según elQualitySelector. (I70508, b/204288986) - Cuando se invoca una captura de imagen con la API de
ImageCapture.OnImageCapturedCallback, ahora se puede usar el ImageInfo en elImageProxyque se muestra para saber si se activó el flash a través de la nueva API deImageInfo.getFlashState(). (Id2c61, b/380527406) - Se agregó compatibilidad con el formato de salida
OUTPUT_IMAGE_FORMAT_NV21paraImageAnalysis. (I484ab) - Se quitó la anotación experimental del artefacto
featurecombinationquery(I4427f). - Se ajustó el rango de relación de zoom permitido para
CameraControlsegún las características específicas de las extensiones cuando se habilita un modo de extensiones. (I85af1)
Correcciones de errores
- Se actualizó
compileSdka 35 para usar la API relacionada con Android 15. Las apps que usan las bibliotecas de CameraX también deberán actualizar su parámetro de configuracióncompileSdk. (Ic80cd) - Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deben usar el siguiente argumento del compilador para aplicar el uso correcto:
-Xjspecify-annotations=strict(este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin). (Idc6c6, b/326456246)
Versión 1.5.0-alpha04
11 de diciembre de 2024
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha04. La versión 1.5.0-alpha04 incluye estas confirmaciones.
Cambios en la API
- Se expusieron
ImageCapture.Builder#setOutputFormatyImageCaptureCapabilities#getSupportedOutputFormatscomo APIs estables (Ieb04a). - Agrega
VideoCapture.getResolutionInfo()para obtener la información de resolución cuando se vincula unVideoCapturea un Lifecycle. (Icb478) - Se expusieron
PreviewView.getScreenFlashyPreviewView.setScreenFlashOverlayColorcomo APIs estables. (I74fee)
Correcciones de errores
- Se corrigió un problema de falla de captura en el dispositivo Vivo 1610 cuando se tomaba una foto con flash en la oscuridad. (I366f4).
- Se corrigió un problema por el que la linterna se apagaba de forma inesperada después de capturar una imagen en el Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Se solucionó un problema en los dispositivos Pixel con Android 15 en el que el modo NOCTURNO en las extensiones no capturaba imágenes estáticas hasta que la cámara enfocaba un objeto cercano. (I228d4)
- Se solucionó el problema de funcionamiento incorrecto de la captura de imágenes fijas cuando las extensiones están habilitadas y
VideoCaptureestá vinculado. (I5c745) - Se habilitó la compatibilidad con la captura de imágenes estáticas
UltraHDRpara las extensiones si el dispositivo lo admite. (I48300) - Se corrigió un problema de sincronización del flash para la captura con flash con
CameraEffectque se orientaba a las capturas de imágenes en dispositivos TCL. (I7698c)
Versión 1.5.0-alpha03
30 de octubre de 2024
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha03. La versión 1.5.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se agregaron APIs de formato de salida para RAW y RAW + JPEG
ImageCapture. La verificación de la capacidad del dispositivo se expone enImageCaptureCapabilities#getSupportedOutputFormats.OUTPUT_FORMAT_RAWsirve para capturar imágenes RAW, que es el formato DNG de Adobe, yOUTPUT_FORMAT_RAW_JPEGsirve para capturar imágenes RAW y JPEG de forma simultánea. La nueva API deImageCapture#takePicturese usa para la captura simultánea de imágenes y debe proporcionar dosOutputFileOptions: el primero es para la imagen RAW y el segundo, para la imagen JPEG. (Ib0f3d).
Correcciones de errores
- Se corrigió el problema relacionado con la subexposición de la vista previa y el video en dispositivos TCL cuando se habilita
VideoCapture. (Id7a64). - Se solucionó el problema por el que invocar
startFocusMeteringconPreviewView.getMeteringPointFactoryno obtenía las coordenadas correctas del sensor cuando se habilitaba un efecto o cuando se vinculaban 4 casos de uso (uso compartido de transmisiones). (I916c5, b/345993685) - Se corrigió el evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEque no se activa cuando se graba un video y no hay suficiente espacio de almacenamiento disponible. (I35779, b/356399842)
Versión 1.5.0-alpha02
2 de octubre de 2024
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha02. La versión 1.5.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron nuevas APIs para consultar las funciones de la cámara que admite el dispositivo. Por ejemplo, verificar si se pueden habilitar HDR y 60 FPS al mismo tiempo. Incluye 2 artefactos: camera-feature-combination-query y camera-feature-combination-query-play-services.
Esta es una versión compatible de la API de
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedde camera2 con datos adicionales proporcionados por los Servicios de Google Play.
Correcciones de errores
- Se solucionó el problema de la velocidad de fotogramas objetivo de
Preview/VideoCaptureen dispositivos de nivel HEREDADO. La velocidad de fotogramas objetivo establecida a través de la API desetTargetFrameRateoCamera2Interopsiempre se reemplazaba por el valor proporcionado porAeFpsRangeLegacyQuirk. Con esta corrección, la biblioteca de CameraX respetará el valor establecido a través de la API desetTargetFrameRateoCamera2Interop. (Ie2d32) - Se agregaron funciones de flash, linterna y 3A para capturas de imágenes con
CameraEffect. Las capturas de imágenes conCameraEffectahora deberían tener los mismos procesamientos previos y posteriores a la captura (p.ej., activación del flash, convergencia de 3A, etc., cuando corresponda) que la captura de imágenes sin ningúnCameraEffect. (I5ff30) - Se excluyeron los tamaños de salida problemáticos para
ImageAnalysisen el dispositivo Samsung SM-A057G. CuandoImageAnalysisuse una resolución mayor o igual que 1920 x 1440, se producirá un problema de vista previa en negro. Se aplicóExcludedSupportedSizesQuirkal dispositivo SM-A057G para evitar el problema. (I63dfe, b/365877975) - Se solucionó el problema de la velocidad de fotogramas objetivo de
Preview/VideoCapturecuando el mecanismo de uso compartido de transmisiones está habilitado de forma interna para compartir una transmisión conPreviewyVideoCapture. (I4fdac) - Se habilitó la solución alternativa para corregir el problema de metadatos incorrectos de imágenes JPEG en dispositivos Samsung S10e y S10+. Con la corrección, CameraX puede guardar correctamente la imagen JPEG, o bien se pueden devolver objetos Bitmap correctos cuando se llama a la función
ImageProxy.toBitmap()en estos dispositivos si se produce el problema de metadatos de imagen JPEG incorrectos. (Iae493, b/356428987) - Se inhabilitaron las extensiones de la cámara posterior del Samsung A52s con el ID 0, ya que podrían producirse fallas por error en código nativo cuando se capturan imágenes HDR y la configuración de las sesiones de captura podría fallar en los modos BOKEH o FACE_RETOUCH. (I03ec9, b/364152642)
- Se corrigió el evento
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEque no se activa cuando se graba un video y no hay suficiente espacio de almacenamiento disponible. (Ia5b4f, b/356399842) - Se solucionó un problema por el que fallaba el segundo intento de grabación de video en Oppo A5 (CPH1931). (I181d6)
Versión 1.5.0-alpha01
4 de septiembre de 2024
Lanzamiento de androidx.camera:camera-*:1.5.0-alpha01. La versión 1.5.0-alpha01 incluye estas confirmaciones.
Nuevas funciones
- Se lanzó un nuevo artefacto,
camera-compose, para el adaptador de Compose del visor de CameraX, que muestra un flujo de vista previa de unSurfaceRequestde CameraX desdecamera-core. (I8666e). - Se agregó un nuevo elemento componible,
CameraXViewfinder, que actúa como un elemento idiomático componible y adapta losSurfaceRequestde CameraX para elViewfindercomponible. (I4770f).
Cambios en la API
- Se proporcionó la API para establecer la configuración de composición para la captura de video de cámara doble simultánea. La configuración incluye el valor alfa para la combinación, el desplazamiento en las coordenadas x, y, y la escala del ancho y la altura de la ventana de visualización del fotograma de la cámara. El desplazamiento, el ancho y la altura se especifican en coordenadas normalizadas del dispositivo. (Ia2b8a)
- Se expuso
CameraProvider.getCameraInfopara que sea una API formal. (I901cd) - Se agregó la API
PendingRecording.withAudioEnabled(boolean initialMuted)para controlar el estado de silencio inicial. (I635c3, b/354829267)
Correcciones de errores
- Se corrigió la falla que se producía cuando se invocaba
bindToLifecyclecon unLifecycleOwnerdestruido. (I6e6d8) - Se corrigió un problema por el que la vista previa era una pantalla negra en la cámara frontal cuando se vinculaba con
VideoCaptureen el Motorola Edge 20 Fusion. (I1fe88) - Se optimizó la configuración para detectar gestos de zoom en
PreviewViewpara mejorar la fluidez. (I04ffc).
Camera versión 1.4
Versión 1.4.2
26 de marzo de 2025
Lanzamiento de androidx.camera:camera-*:1.4.2. La versión 1.4.2 incluye estas confirmaciones.
Correcciones de errores
- Se solucionó el problema de la vista previa que se congelaba cuando se usaba
ImageAnalysiscon otra transmisión que usabaTEMPLATE_RECORDen el Samsung Galaxy M55. (Ic1a6a, b/395822788)
Versión 1.4.1
11 de diciembre de 2024
Lanzamiento de androidx.camera:camera-*:1.4.1. La versión 1.4.1 incluye estas confirmaciones.
Correcciones de errores
- Se solucionó un problema en los dispositivos Pixel con Android 15 en el que el modo NOCTURNO en las extensiones no capturaba imágenes estáticas hasta que la cámara enfocaba un objeto cercano. (I228d4)
- Se solucionó el problema de funcionamiento incorrecto de
ImageCapture#takePicturecuando las extensiones están habilitadas yVideoCaptureestá vinculado. (I5c745)
Versión 1.4.0
30 de octubre de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0. La versión 1.4.0 incluye estas confirmaciones.
Cambios importantes desde la versión 1.3.0
CameraX 1.4.0 incluye actualizaciones increíbles. A continuación, se incluye un resumen:
Función destacada: HDR de 10 bits:
- Captura fotos y videos HDR increíbles con facilidad.
- Admite HLG y codificación HEVC de 10 bits.
- Disfruta de la vista previa de HDR de 10 bits y consulta las capacidades del dispositivo.
- Funciona con imágenes
UltraHDRy videos HDR en una creciente variedad de dispositivos.
Otras funciones interesantes:
- Extensiones de Kotlin: Se agregaron las funciones de suspensión
takePictureyawaitInstance. - Efectos en tiempo real: Aplica efectos como marcas de agua y destacado de objetos.
- API de CameraController: Nuevos controles para la configuración de la captura de video.
- Estabilización de la vista previa: Consulta la capacidad del dispositivo y habilita la estabilización.
- Mejoras en VideoCapture: Control más preciso de la calidad y acceso a resoluciones más altas.
- Integración de extensiones de CameraX: Integración perfecta con
VideoCapturey nuevas funciones deImageCapture. - API de sonido del obturador: Verifica fácilmente los requisitos regionales de sonido del obturador.
- Flash de pantalla: Se mejoraron las fotos con poca luz para las cámaras frontales.
- APIs de metadatos de Camera Extensions: APIs compatibles para ajustar la intensidad de las extensiones y recibir notificaciones del modo de extensiones actual en
ExtensionMode#AUTO. Puedes encontrar más correcciones de errores en nuestros anuncios de las versiones beta y RC.
Versión 1.4.0-rc04
16 de octubre de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-rc04. La versión 1.4.0-rc04 incluye estas confirmaciones.
Correcciones de errores
- Se solucionó el problema por el que invocar
startFocusMeteringconPreviewView.getMeteringPointFactoryno obtenía las coordenadas correctas del sensor cuando se habilitaba un efecto o cuando se vinculaban 4 casos de uso (uso compartido de transmisiones). (I916c5, b/345993685)
Versión 1.4.0-rc03
2 de octubre de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-rc03. La versión 1.4.0-rc03 incluye estas confirmaciones.
Correcciones de errores
- Se agregaron funciones de flash, linterna y 3A para capturas de imágenes con
CameraEffect. Las capturas de imágenes conCameraEffectahora deberían tener los mismos procesamientos previos y posteriores a la captura (p.ej., activación del flash, convergencia de 3A, etc., cuando corresponda) que la captura de imágenes sin ningúnCameraEffect. (I5ff30) - Se optimizó la fluidez de pellizcar para hacer zoom en
PreviewView(I04ffc). - Desvincular Ultra HDR de la capacidad de salida de 10 bits, ya que la compatibilidad con Ultra HDR ya no requiere que los dispositivos tengan capacidad de salida de 10 bits (I96ff2, I0c3b3)
Versión 1.4.0-rc02
18 de septiembre de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-rc02. La versión 1.4.0-rc02 incluye estas confirmaciones.
Correcciones de errores
- Se corrigió la falla que se producía cuando se invocaba
bindToLifecyclecon unLifecycleOwnerdestruido. (I6e6d8) - Se agregó una animación de visibilidad en
ScreenFlashViewparaScreenFlash#apply, que también corrige errores debido a que el cambio de brillo se completa de forma asíncrona después de un tiempo. (I37cdb). - Se mejoró la fluidez del zoom anulando la configuración de zoom en el framework de los dispositivos compatibles.
Versión 1.4.0-rc01
7 de agosto de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-rc01. La versión 1.4.0-rc01 contiene estas confirmaciones.
Nuevas funciones
- Se agregó la función experimental
CameraInfo.getCameraInfopara proporcionar información específica de la cámara sin necesidad de vincular casos de uso a la cámara. (I550d1)
Cambios en la API
- Se agregaron las APIs de
PreviewView.getScreenFlashyPreviewView.setScreenFlashOverlayColorpara los casos en los que no se agregaScreenFlashViewde forma explícita. (I43945)
Correcciones de errores
- Se corrigieron los problemas de exposición y tono de color que se producían cuando se capturaba una imagen con el flash habilitado en condiciones de poca luz con el caso de uso de VideoCapture vinculado. (Ic9814).
- Se solucionó el problema por el que, si se interrumpía una solicitud de
takePicturecon las extensiones habilitadas, no se obtenía el resultado y la siguiente solicitud detakePicturepodría dejar de funcionar. (Iae78f). - Se corrigió un problema de fuga de memoria que se produce cuando se habilitan las extensiones. (Iab276).
- Se resolvió un problema de funcionamiento de las extensiones de CameraX en dispositivos como Pixel 7/8 y la serie Samsung Galaxy S24. El problema, que se originó a partir de un problema de conversión de
Camera2OutputConfigImplen el modo de lanzamiento, apareció después de actualizar el AGP a la versión 8.5.1 y habilitar la reducción. (I99598, b/354824993)
Versión 1.4.0-beta02
12 de junio de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-beta02. La versión 1.4.0-beta02 contiene estas confirmaciones.
Cambios en la API
- Al igual que con
VideoCapture, agregasetMirrorModepara el caso de uso de Preview. Admitirá el modo de espejo ACTIVADO y DESACTIVADO para la transmisión de vista previa a través deOutputConfiguration.setMirrorModedesde la API 33 y versiones posteriores. Para las APIs anteriores, no se realizará ninguna operación. (I821f4)
Correcciones de errores
- Se corrigió el problema por el que las apps no podían tomar fotos correctamente en la Samsung Tab A8 cuando
ImageCaptureseleccionaba 1920 x 1080 en la combinaciónPreview+VideoCapture+ImageCaptureUseCase. (I5a463, b/336925549) - Se corrigió un problema por el que la grabación continua podía fallar después de cambiar de cámara. (Icb0a1)
Versión 1.4.0-beta01
14 de mayo de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-beta01. La versión 1.4.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se agregó
ZoomGestureDetector.ZoomEventpara encapsular los estados de un gesto de zoom. (I84cdf)
Correcciones de errores
- Se corrigió un error por el que la captura de imágenes estáticas y la función de presionar para enfocar no usaban los valores del modo de estabilización o FPS de la solicitud repetida, lo que podía volver a crear la sesión de captura y causar problemas de latencia o congelamiento de la vista previa en algunos dispositivos. (I7dc0b)
- Se corrigió un error por el que no se podían seleccionar resoluciones altas cuando se habilitaba
CameraEffecten algunos dispositivos. (p.ej., 4000 × 3000 en Samsung A32 5G). (Ie3ed3, b/337336152) - Se corrigió una falla que se producía cuando se tomaba una foto con Preview,
ImageCaptureyVideoCapture(UHD)vinculados en el Pixel 4XL con el nivel de API 29. (I5b288). - Compatibilidad con dispositivos virtuales: El contexto que se pasa a
ProcessCameraProviderconservará el ID del dispositivo para garantizar la funcionalidad en un entorno de dispositivo virtual. (I5ba48)
Versión 1.4.0-alpha05
17 de abril de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-alpha05. La versión 1.4.0-alpha05 incluye estas confirmaciones.
Nuevas funciones
- Se convirtió
ProcessCameraProvideren una implementación de Kotlin. (I46d4f) - Se agregaron funciones de suspensión
ImageCapture.takePicturepara permitir que se las llame de una manera idiomática de Kotlin. (I920be)
Cambios en la API
- Agrega APIs de formato de salida a
ImageCapturey el métodogetSupportedOutputFormatsaImageCaptureCapabilitiespara consultar la capacidad del dispositivo. El valor predeterminado del formato de salida esOUTPUT_FORMAT_JPEG, que captura imágenes SDR en formato JPEG. Cuando el dispositivo admita Ultra HDR y el formato de salida se establezca enOUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX capturará imágenes comprimidas en Ultra HDR con el formato de imagen JPEG/R. El formato es retrocompatible con el formato JPEG SDR y admite la renderización HDR del contenido. Esto significa que, en las apps o los dispositivos más antiguos, las imágenes aparecen sin problemas como JPEG normales, mientras que, en las apps y los dispositivos que se actualizaron para admitir el formato por completo, las imágenes aparecen como HDR. (I5de50). - Se agregó
PhysicalCameraInfoenCameraInfopara consultar la información de la cámara física y se agregó el método set/get del ID de la cámara física enCameraSelector(Ic5b90). - Reemplaza
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDporImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. El valor de la constante sigue siendo el mismo. Esto es para consolidar todas las constantes en un solo lugar. (I890bb) - La nueva API de
RetryPolicypermite que los desarrolladores personalicen el comportamiento de reintento para la inicialización de CameraX. (I36dd2) - Se habilitó la creación del objeto
ImageCaptureLatencyEstimatepara ayudar con la capacidad de prueba (Iaba99). - Agrega un
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Cuando se usa,MlKitAnalyzerdevuelve coordenadas en el sistema de coordenadas del sensor de la cámara. (I3ec61). - Se expuso la API de metadatos de extensiones. Las nuevas interfaces
CameraExtensionsInfoyCameraExtensionsControlpermiten que las aplicaciones supervisen y ajusten la configuración de intensidad de la extensión. Las aplicaciones pueden obtener la instancia deCameraExtensionsInfooCameraExtensionsControla través de los métodosExtensionsManager#getCameraExtensionsInfo()oExtensionsManager#getCameraExtensionsControl()agregados recientemente. (I28e1a) - Se agregó
ProcessCameraProvider.awaitInstance, que es una versión de suspensión deProcessCameraProvider.getInstance(Ib22b9). - Se agregó una API de
PreviewView#getSensorToViewTransform(). La matriz representa la transformación de las coordenadas del sensor de la cámara a las coordenadas dePreviewView. Esto se puede usar para transformar coordenadas de unUseCasea otro. Por ejemplo, transformar las coordenadas de los objetos detectados enImageAnalysisen una superposición dePreviewView. (I947ab). - Se hizo que la API de
camera-viewfinder-coresea más genérica para que la puedan usarcamera-viewfinderycamera-viewfinder-compose. (I1e295). - Agrega la función
getSurfaceaViewfinderSurfaceRequest. (I781a0) - Usa
camera-viewfinder-coreencamera-viewfindery deja de usarViewfinderSurfaceRequestyCameraViewfinder. (I6198c). - Se agregó
ZoomGestureDetector, que interpreta los gestos de escalamiento configurados específicamente para la actividad de pellizcar para hacer zoom. (Ifafbf)
Correcciones de errores
- Se corrigió el problema de selección de resolución de
ImageAnalysisrelacionado con el parámetro de configuración de resolución objetivo predeterminada del analizador: la resolución objetivo se mantuvo incorrectamente en 640 x 480, incluso si las aplicaciones establecieron un parámetro de configuración de resolución predeterminada del analizador diferente. Si las aplicaciones tienen este problema (1.3.0 ~ 1.3.2) y no pueden actualizarse para usar las versiones más recientes que contienen la solución, se puede solucionar este problema configurando directamente unResolutionSelectorcon la resolución preferida y unAspectRatioStrategycoincidente con elImageAnalysisUseCase. (I81f72, b/330091012) - Se solucionó un problema por el que la solicitud
takePictureen cola podía no ejecutarse si fallaba la solicitud actual. (Ie0801) - Se aplicó la verificación de datos JPEG no válidos a los dispositivos Vivo X60 y X60 Pro. Esto puede solucionar el problema de las imágenes anormalmente grandes en estos dispositivos. (I82247, b/288828159)
- Se corrigió el problema de metadatos incorrectos de imágenes JPEG en dispositivos Samsung A24. Con la corrección, CameraX puede guardar correctamente la imagen JPEG o se pueden devolver objetos de mapa de bits correctos cuando se llama a la función
ImageProxy.toBitmap()en dispositivos Samsung A24. (I8d6eb, b/309005680) - Se aplicó la verificación de datos JPEG no válidos a todos los dispositivos Samsung si la imagen capturada supera los 10 MB. Esto puede solucionar el problema de las imágenes anormalmente grandes en los dispositivos Samsung. (Ic2a65, b/288828159)
- Se quitó la compatibilidad con
ImageAnalysisen las extensiones de CameraX, ya que las implementaciones de extensiones de muchos OEM no funcionan bien conImageAnalysisy pueden causar problemas de incoherencia. (I2d926)
Versión 1.4.0-alpha04
24 de enero de 2024
Lanzamiento de androidx.camera:camera-*:1.4.0-alpha04. La versión 1.4.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Nuevo artefacto: camera-effects: Es una biblioteca para aplicar efectos en tiempo real al resultado de CameraX, incluidos
Preview,VideoCaptureoImageCapture. Este artefacto contiene implementaciones de OpenGL de la API deCameraEffectque manipula el resultado de la cámara de manera eficiente. OverlayEffect: para dibujar superposiciones con la API de Canvas de Android. Esto permite que la app aplique una marca de agua o destaque los objetos detectados en las salidas de la cámara.- Se agregaron las APIs de
DynamicRangepara el caso de uso de vista previa: Ahora, el rango dinámico se puede configurar en el caso de uso de vista previa, independientemente del caso de uso de video. Esto permite rangos dinámicos de HDR, como HLG10, solo para la vista previa. También hay nuevas APIs disponibles enCameraInfopara consultar qué rangos dinámicos admite cada cámara.
Cambios en la API
- Se cambió el nombre de
ScreenFlashUiCompleterporScreenFlashListenery se movióScreenFlashUiCompleter#getExpirationTimeMillisal parámetroexpirationTimeMillisdeScreenFlash#apply. (I13944). - Se agregaron nuevas APIs para permitir que se establezca el rango dinámico en el caso de uso de la vista previa y para consultar los rangos dinámicos que admite cada cámara. Esto permite que los rangos dinámicos de HDR, como HLG10, se usen solo con el caso de uso de vista previa, por lo que ya no es necesario vincular un
VideoCaptureal mismo tiempo. (If25e3) - Se cambió el nombre de
getMirroring()aisMirroring()(I47063). - Se agregó compatibilidad con la estimación de latencia de capturas estáticas en tiempo real en CameraX. Las extensiones de la cámara permiten que las aplicaciones usen una API que proporciona una estimación de cuánto tiempo llevará una captura. La estimación tiene en cuenta las condiciones actuales del entorno, el estado de la cámara y el tiempo que se tarda en procesar las solicitudes de captura de varios fotogramas, junto con cualquier tiempo adicional para codificar los búferes procesados, si es necesario. (I05c3a)
- Se cambió el nombre de
ScreenFlashUiControlporScreenFlash, el deScreenFlashUiControl#applyScreenFlashUiporScreenFlash#applyy el deScreenFlashUiControl#clearScreenFlashUiporScreenFlash#clear, y se agregó el métodogetScreenFlashUiApplyTimeoutSecondsen lugar de exponerSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDSdirectamente. (Iccdd0)
Correcciones de errores
- Se corrigió una fuga de memoria que provocaba que no se liberaran actividades ni fragmentos cuando se habilitaban las extensiones (I14215).
- Se solucionó el problema por el que
getZoomRatiodevolvía de forma incorrecta un valor disminuido cuando se aplicaba una relación de zoom creciente. (I4aa0d, b/317543616) - El evento
ImageCapture#ScreenFlash#clearse invoca de inmediato cuando se desvinculaImageCaptureo se cierra la cámara. También se corrigen algunos errores en los que nunca se invoca debido a que las capturas en estas situaciones no se completan correctamente. (If99f9) - Se corrigió la falla que se producía cuando se detenía el ciclo de vida antes de que se completara la solicitud de
takePicture(Idf017, b/306202751). - Se solucionó el problema por el que la vista previa de la cámara se volvía negra cuando se habilitaban las extensiones en algunos dispositivos (I1ffd0).
- Se corrigió la duración incorrecta de la grabación de video en dispositivos que usan el SoC Snapdragon 778G. (If6aa7, b/316057919)
Versión 1.4.0-alpha03
13 de diciembre de 2023
Lanzamiento de androidx.camera:camera-*:1.4.0-alpha03. La versión 1.4.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregó
CameraInfo.mustPlayShutterSoundpara proporcionar información sobre si se debe reproducir un sonido de obturador de acuerdo con las restricciones regionales. (Ifda84) - Se agregaron
OnImageCapturedCallback.onCaptureStartedyOnImageSavedCallback.onCaptureStartedpara notificar cuando la cámara comenzó a exponer un fotograma. Se recomienda reproducir el sonido o la animación del obturador en este punto. (Ic49b3) - Se agregó compatibilidad con la función de flash de pantalla en CameraX para la captura de imágenes con la cámara frontal. CameraX se encargará de administrar la API del framework y sincronizará el tiempo con los cambios de la IU de la aplicación según sea necesario (p.ej., el activador de captura previa de AE después de que cambie el color o el brillo de la pantalla de la app). Las apps solo necesitarán agregar sus implementaciones del lado de la IU en la interfaz
ScreenFlashUiControlque se proporciona a CameraX. (I8ae84). - Se agregó compatibilidad con la implementación de la función de flash de pantalla en la IU de CameraX. Las apps podrán obtener una implementación básica de
ImageCapture.ScreenFlashUiControldesdePreviewViewo la recién agregadaScreenFlashView, que agregará una vista de superposición de un solo color y maximizará el brillo de la pantalla durante la captura de fotos con flash de pantalla. (I1810e).
Cambios en la API
- Se agregaron las APIs de
ImageCapture#getImageCaptureCapabilities()para que las apps consulten las capacidades de la devolución de llamada de progreso del proceso de captura y vista posterior. Las apps pueden habilitar la vista posterior conImageCapture.Builder#setPostviewEnabled(). El tamaño de la vista posterior se puede seleccionar conImageCapture.Builder#setPostviewResolutionSelector(). Cuando se invocatakePicture(), se pueden implementaronPostviewBitmapAvailableyonCaptureProcessProgressedenOnImageSavedCallbackoOnImageCapturedCallbackpara obtener la notificación de progreso de la vista posterior y del proceso, si se admite. (I5cd88) - Se agregaron APIs para calcular la transformación de coordenadas del sensor al búfer actual, con una marca que indica si la superficie contiene la información de orientación de la cámara. (I59096)
- Se expuso la API para consultar
PreviewCapabitlityen la versión preliminarUseCase. (Ie5b6c) - Se agregaron APIs para admitir más calidades de
VideoCapture.Recorder.Builder#setVideoCapabilitiesSource(int)se puede usar conVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESpara crear una instancia deRecorderque admita más calidades queVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Un caso de uso común es cuando la aplicación se esfuerza por grabar videos en UHD siempre que sea posible, pero elCamcorderProfiledel dispositivo no incluye una configuración de UHD, aunque el códec sea capaz de grabar videos en UHD. (Iedbe2, b/263961771) - Agrega el método get/set del formato de salida
ImageAnalysisaCameraController. (I9a96c, b/308240643)
Correcciones de errores
- Desde Cámara
1.3.1: Se mejoró el rendimiento deProcessCameraProvider#bindToLifecycle(). El cambio principal es optimizar el proceso de identificación de las combinaciones de tamaños más adecuadas paraUseCases. Los resultados óptimos varían según las combinaciones específicas deUseCasey la cantidad de tamaños de salida admitidos para los dispositivos de destino. (I454f2) - Permitir el uso de
VideoCapturecuando las extensiones están habilitadas (I91f32) - Se corrigió el problema de las imágenes JPEG capturadas de gran tamaño en los dispositivos de las series Samsung A71 y M51. Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Hace que las imágenes capturadas tengan un tamaño de archivo extremo. Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I01afc, b/288828159)
- Inhabilita la compatibilidad con
ImageAnalysisen los dispositivos Pixel para evitar el error que devuelve accidentalmente los tamaños admitidos deImageAnalysisno vacíos. (I7ec31). - Se solucionó un problema de rendimiento en el que la carga de la CPU y el consumo de energía aumentaban cuando se habilitaban las extensiones. (Ibdccb)
- Se agregó Snapdragon 480 a
CameraUseInconsistentTimebaseQuirk. Esto soluciona un problema en Android 12 para los dispositivos que usan este chipset, en el que el audio de las grabaciones se desfasa por la cantidad de tiempo que el dispositivo está en estado suspendido. (I58010)
Versión 1.4.0-alpha02
18 de octubre de 2023
Lanzamiento de androidx.camera:camera-*:1.4.0-alpha02. La versión 1.4.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de la API a
setCameraOpenRetryMaxTimeoutInMillisWhileResumingy se cambió el nombre del argumento. (I72370) - Agrega APIs para consultar la capacidad del dispositivo y habilitar la estabilización de video y vista previa. (I87544)
- Se proporcionó una API para personalizar el tiempo de espera máximo para reintentar abrir la cámara. (I0c642).
- Se lanzó
ProcessCameraProvider.shutdownAsynccomo una API de pruebas pública para permitir que el proveedor de la cámara del proceso se use en paquetes de pruebas que podrían necesitar inicializar CameraX de diferentes maneras entre las pruebas. (I9eca7). - Se agregaron APIs para configurar el rango dinámico, la velocidad de fotogramas y el modo de espejo de la captura de video. (Ifb8f7)
- Se dio de baja
OutputSizey se reemplazó porResolutionSelector.ResolutionSelectores una forma más completa de seleccionar resoluciones y es coherente con la API de camera-core. (I93abd, b/286801438)
Correcciones de errores
- Se solucionó el problema de la vista previa en negro en el Samsung Galaxy S23 Ultra 5G cuando se habilitan las extensiones Bokeh o Retoque facial con
ImageAnalysisen la cámara posterior. (I2e8b1). - Se corrigieron los problemas de vista previa y
VideoCaptureextendida en Moto E5 Play. (73dce2)
Versión 1.4.0-alpha01
20 de septiembre de 2023
Lanzamiento de androidx.camera:camera-*:1.4.0-alpha01. La versión 1.4.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se agregó una nueva API para acceder a la información de amplitud de audio durante la grabación. (Id4925)
Correcciones de errores
- Mejora la estabilidad de las extensiones garantizando que los eventos de inicialización y desinicialización se activen en el orden correcto. (Ib3b8e)
- Se corrigió el error de configuración de la sesión de captura por exceder la combinación de superficies admitidas debido a que se agregó una superficie repetida adicional de forma interna. (Id718c).
- Se corrigió un problema con las imágenes JPEG grandes capturadas en el dispositivo Vivo S16. Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Esto hace que las imágenes capturadas tengan un tamaño de archivo grande. Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I79505, b/299069235)
- Se solucionó el problema por el que
ImageAnalysisno se podía vincular conImageCapturey Preview cuando se habilitaban algunos modos de extensión en ciertos dispositivos. La corrección devolverá el valor correcto cuando las apps consulten la disponibilidad deImageAnalysisa través deExtensionsManager#isImageAnalysisSupported(). (I7d538). - Se actualizó JavaDoc para que coincida con el comportamiento. En lugar de completarse de inmediato,
#setZoomRatio,#setLinearZoomy#enableTorchesperan hasta que la cámara esté lista. También se agregó información sobre cómo obtener el FOV máximo con la API de#takePicture. (I23588)
Versión 1.3
Versión 1.3.4
12 de junio de 2024
Lanzamiento de androidx.camera:camera-*:1.3.4. La versión 1.3.4 incluye estas confirmaciones.
Correcciones de errores
- Se solucionó el problema por el que
getZoomRatiodevolvía de forma incorrecta un valor disminuido cuando se aplicaba una relación de zoom creciente. (I4aa0d, b/317543616) - Se corrigió el problema por el que la captura de fotos o el enfoque táctil no usaban los valores de FPS o del modo de estabilización de la solicitud repetida, lo que podía volver a crear la sesión de captura y causar problemas de latencia o congelamiento de la vista previa en algunos dispositivos. (I7dc0b)
- Se corrigió el problema por el que la velocidad de fotogramas se establecía en un valor más bajo cuando se llamaba a
setTargetFrameRateconFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
Versión 1.3.3
17 de abril de 2024
Lanzamiento de androidx.camera:camera-*:1.3.3. La versión 1.3.3 incluye estas confirmaciones.
Correcciones de errores
- Se corrigió el problema de selección de resolución de
ImageAnalysisrelacionado con el parámetro de configuración de resolución objetivo predeterminada del analizador: la resolución objetivo se mantuvo incorrectamente en 640 x 480, incluso si las aplicaciones establecieron un parámetro de configuración de resolución predeterminada del analizador diferente. Si las aplicaciones tienen este problema (1.3.0 ~ 1.3.2) y no pueden actualizarse para usar las versiones más recientes que contienen la solución, se puede configurar directamente unResolutionSelectorcon la resolución preferida y unAspectRatioStrategycoincidente con el UseCase deImageAnalysispara solucionar este problema. (I81f72, b/330091012)
Versión 1.3.2
6 de marzo de 2024
Lanzamiento de androidx.camera:camera-*:1.3.2. La versión 1.3.2 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un problema con los metadatos de JPEG en dispositivos Samsung A24. Ahora CameraX guarda las imágenes con precisión y la función
ImageProxy.toBitmap()devuelve objetos Bitmap correctos. (I8d6eb, b/309005680) - Se quitó la opción de resolución de 9280 × 6944 en los dispositivos Redmi Note 9 Pro debido a problemas. (Ia23da).
Versión 1.3.1
13 de diciembre de 2023
Lanzamiento de androidx.camera:camera-*:1.3.1. La versión 1.3.1 contiene estas confirmaciones.
Correcciones de errores
Se mejoró el rendimiento de ProcessCameraProvider#bindToLifecycle(). El cambio principal es optimizar el proceso de identificación de las combinaciones de tamaños más adecuadas para UseCases. Los resultados óptimos varían según las combinaciones específicas de UseCase y la cantidad de tamaños de salida admitidos para los dispositivos de destino. (I454f2)
Aquí hay algunos resultados de referencia para varias situaciones:
Cuatro
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: De aproximadamente 430 ms a 60 ms
- Samsung Galaxy S23 Ultra: de aproximadamente 540 ms a 45 ms
- Samsung A53 5G: De 115 ms a 70 ms aproximadamente
Tres
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: Aproximadamente de 9 ms a 7 ms
- Samsung Galaxy S23 Ultra: de 6 ms a 5 ms aproximadamente
- Samsung A53 5G: De 32 ms a 12 ms aproximadamente
Se agregó Snapdragon 480 a
CameraUseInconsistentTimebaseQuirk. Esto soluciona un problema en Android 12 para los dispositivos que usan este chipset, en el que el audio de las grabaciones se desfasa por la cantidad de tiempo que el dispositivo está en estado suspendido. (I58010)
Versión 1.3.0
18 de octubre de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0. La versión 1.3.0 contiene estas confirmaciones.
Cambios importantes desde 1.2.0
- Funciones de video, como HDR de 10 bits, recorte, modo espejo/no espejo, silenciar/activar sonido, establecer velocidad de fotogramas y mucho más
- Cámara doble simultánea
- Biblioteca de efectos
- Selector de resolución
- Selección de cámara ultra gran angular y telescópica
- Cambio de cámara durante la grabación de video (función experimental)
Versión 1.3.0-rc02
20 de septiembre de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-rc02. La versión 1.3.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Mejora la estabilidad de las extensiones garantizando que los eventos de inicialización y desinicialización se activen en el orden correcto. Esto solucionó algunos problemas de vista previa en negro que se producían cuando se cambiaban los modos de extensiones o las cámaras. (Iddaac)
- Se solucionó el problema por el que
ImageAnalysisno se podía vincular conImageCapturey Preview cuando se habilitaban algunos modos de extensión en ciertos dispositivos. La corrección devolverá el valor correcto cuando las apps consulten la disponibilidad deImageAnalysisa través deExtensionsManager#isImageAnalysisSupported(). (I7d538). - Se corrigió el problema por el que el audio y el video grabados no estaban sincronizados cuando se habilitaba el modo de espejo en el Xiaomi Poco X3 NFC. (I20b4c)
Versión 1.3.0-rc01
23 de agosto de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-rc01. La versión 1.3.0-rc01 contiene estas confirmaciones.
Cambios en la API
- Se agregó
PendingRecording.asPersistentRecordingpara permitir una grabación continua mientras se vuelve a vincular elVideoCaptureal que está conectada su Grabadora. (I517c6).
Correcciones de errores
- Se corrigió una falla que se producía cuando se compartía un flujo con
VideoCapturey la vista previa. También se corrigió un problema de pantalla negra en dispositivos HEREDADOS cuando se habilita el uso compartido de transmisiones. - Se corrigió el problema de las imágenes JPEG capturadas de gran tamaño en los dispositivos de la serie Samsung S7 (SM-G930T, SM-G930V). Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Esto hace que las imágenes capturadas tengan un tamaño de archivo grande. Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I407b0, b/288828159)
- Se corrigió el problema de las imágenes JPEG capturadas de gran tamaño en los dispositivos de las series Samsung S22 (SM-S901B, SM-S901B/DS) y S22+ (SM-S906B). Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Esto hace que las imágenes capturadas tengan un tamaño de archivo grande de aproximadamente 13 MB en el dispositivo S22 SM-S901B/DS. Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I73be9, b/288828159)
- Se corrigió el problema de las imágenes JPEG capturadas de gran tamaño en los dispositivos de las series Samsung A5, A52, A70 y A72. Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Esto hace que las imágenes capturadas tengan un tamaño de archivo extremo (p. ej., alrededor de 32 MB o incluso 96 MB). Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I97c4d, b/288828159)
- Se corrigió la falla por error en código nativo que se producía cuando se tomaban fotos con las extensiones habilitadas (I698f5).
Versión 1.3.0-beta02
26 de julio de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-beta02. La versión 1.3.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se usa la linterna como flash para las variantes de Pixel 4 y 5 para mejorar la calidad de captura en condiciones de poca luz (I56ff5, b/280221967).
- Se corrigió el problema de las imágenes JPEG capturadas de gran tamaño en los dispositivos de la serie Samsung A5 (2017). Las imágenes JPEG capturadas contienen datos de relleno de 0 redundantes en el segmento de datos comprimidos de JFIF. Esto hace que las imágenes capturadas tengan un tamaño de archivo de alrededor de 32 MB. Se quitarán esos datos de relleno de 0 redundantes para que las imágenes capturadas tengan tamaños de archivo de imagen normales. (I29837, b/288828159)
- Se corrigió un problema por el que el reintento no se activaba correctamente en caso de que se produjera un error de captura en los dispositivos problemáticos mencionados en
CaptureFailedRetryQuirk. (I7b589)
Versión 1.3.0-beta01
21 de junio de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-beta01. La versión 1.3.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de la función
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)porsetAllowedResolutionModey el de las constantesResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONporPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8) - Se quitaron las APIs obsoletas
ImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)yVideoCapture.setTargetRotationDegrees(int). (Id8e77). - La clase
DynamicRangerepresenta el rango dinámico de las imágenes. Esto se puede usar para seleccionar formatos de alto rango dinámico como la salida deVideoCapturea través deVideoCapture.Builder#setDynamicRange(). (Ib0377). - Se agregó una API de
isImageAnalysisSupportedaExtensionsManager, con la que las apps pueden determinar si se puede vincular un caso de uso deImageAnalysisjunto con Preview yImageCapturecuando las extensiones están habilitadas. (I1bc63) - La nueva clase
VideoCapabilitiesobtenida deRecorderse puede usar para consultar los rangos dinámicos y las calidades admitidas para la grabación de video en el dispositivo. Los métodosgetSupportedQualities()yisQualitySupported()deQualitySelectordejarán de estar disponibles. En su lugar, usa los métodosgetSupportedQualities()yisQualitySupported()deVideoCapabilities. (I04014) - Se cambió el nombre de
CameraController#setVideoCaptureTargetQuality()asetVideoCaptureQualitySelectory toma el argumentoQualitySelector, que proporciona más flexibilidad para la configuración de la calidad de video.CameraController#getVideoCaptureTargetQuality()se cambia agetVideoCaptureQualitySelectorsegún corresponda. (I520ed) - Se quitó la anotación experimental para las funciones de video. Las funciones de video ahora son estables. (I1a113).
Correcciones de errores
- Se usa la linterna en los modelos Samsung SM-A320 para mejorar la velocidad y la calidad de la imagen que se captura con poca luz. (I6a022, b/286190938)
- Se agregó compatibilidad con el formato
ImageFormat.JPEGparaImageProxy.toBitmap(). Si no se puede decodificar el array de bytes JPEG, se arrojará unaUnsupportedOperationException. (I81958, b/282057603).
Versión 1.3.0-alpha07
24 mayo 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha07. La versión 1.3.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
- La nueva API de
VideoCapture.Builder# setTargetFrameRate(Range)permite que las grabaciones de video se capturen con otras velocidades de fotogramas, además de la predeterminada del dispositivo. Las velocidades de fotogramas disponibles para las grabaciones se pueden consultar a través de la nueva API deCameraInfo#getSupportedFrameRates().
Cambios en la API
- Se cambió el nombre de las constantes
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONporALLOWED_RESOLUTIONS_NORMAL/SLOWy el nombre de la función de compiladorsetHighResolutionEnabledFlagporsetAllowedResolutionMode. (Iae817) CameraInfo#getSupportedFrameRateRanges()ahora devuelve unSeten lugar de unListpara representar mejor que los rangos no están ordenados. (I02f43).- Agrega un objeto de escucha de errores a
CameraEffectpara controlar los errores irrecuperables (Ice471). - Se agregó un constructor público en
ResolutionInfopara mejorar la capacidad de prueba (If6d1c). - Se proporcionó una API
UseCase.snapToSurfaceRotation(int)para reemplazar el uso desetTargetRotationDegreesy dar de baja las APIsImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)yVideoCapture.setTargetRotationDegrees(int). (Ia9010) - Se agregaron las nuevas APIs
Preview#getTargetFrameRateyPreview.Builder#setTargetFrameRatepara poder establecer y recuperar la velocidad de fotogramas objetivo para el caso de uso de la vista previa (If4f22). VideoRecordEvent.Finalizeahora se completará con el código de errorERROR_RECORDING_GARBAGE_COLLECTEDcuando se detenga el objetoRecordingdebido a la recolección de elementos no utilizados. (Iba974).
Correcciones de errores
- Se corrigió
NullPointerExceptioncuando los tamaños de salida almacenados en caché enStreamConfigurationMapCompatson nulos. (Idf124, b/282025204). - Se corrigió el problema por el que
Preview.setSurfaceProvider(null)no detenía la vista previa en las extensiones (Ia903e). - Se solucionó un problema por el que se arrojaba
ConcurrentModificationExceptiondurante la apertura de la cámara cuando se vinculabaVideoCapture. (Ic8ac4)
Versión 1.3.0-alpha06
19 de abril de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha06. La versión 1.3.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- La cámara simultánea es una función nueva que se introdujo en Android 11 y que admite la transmisión simultánea de dispositivos de cámara. Por ejemplo, permite que un dispositivo tenga las cámaras frontal y posterior en funcionamiento al mismo tiempo. Actualmente, CameraX solo admite cámaras duales simultáneas, lo que permite que dos cámaras funcionen al mismo tiempo, con un máximo de dos {@link UseCase} vinculados para cada una. La resolución máxima es de 720p o 1440p. Para obtener más detalles, consulta el siguiente vínculo: CameraManager#getConcurrentCameraIds().
- Presentamos la nueva API de
ResolutionSelector, que abarca las siguientes funciones:- Las aplicaciones pueden especificar estrategias de relación de aspecto y resolución para seleccionar la mejor resolución según sus necesidades.
- Todos los parámetros de tamaño y relación de aspecto se expresan en las coordenadas del sensor del dispositivo de la cámara.
- Las aplicaciones pueden implementar un filtro de resolución personalizado para organizar los tamaños admitidos en el orden deseado.
- Las aplicaciones también pueden habilitar la captura de alta resolución para obtener imágenes de mayor resolución. Sin embargo, ten en cuenta que usar una resolución alta puede ralentizar los tiempos de captura.
- Se agregaron las APIs de duplicación de
VideoCapture. Los videos grabados porVideoCaptureno se duplican de forma predeterminada. Sin embargo, la vista previa de la cámara se duplica en la cámara frontal de forma predeterminada. Las APIs de duplicación deVideoCapturepermiten alinearse con la vista previa de la cámara cuando se usa la cámara frontal. Hay tresMirrorMode,OFF,ONyON_FRONT_ONLY. Para alinear la vista previa de la cámara, se recomienda usarON_FRONT_ONLY, lo que significa que no se habilitará la duplicación para la cámara posterior, pero sí para la frontal.
Cambios en la API
- Se expuso la nueva API de
ResolutionSelector. Las aplicaciones pueden especificar estrategias de relación de aspecto y resolución con reglas de resguardo o un filtro de resolución personalizado para obtener los resultados deseados. Las aplicaciones pueden especificar una marca para habilitar la captura de alta resolución. Esto permitirá que CameraX seleccione resoluciones más altas cuando se tomen fotos o se graben videos. Sin embargo, ten en cuenta que usar una resolución alta puede ralentizar los tiempos de captura. (Ibed95) - Ahora, los rangos de FPS que admite el algoritmo de AE se pueden consultar a través de
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - Consolida los nombres de todos los métodos de velocidad de fotogramas para usar "FrameRate". Se corrigió el error de javadoc en
VideoCapture#getTargetFrameRate()(I83304). - Se dejaron de usar las APIs heredadas de
setTargetAspectRatioysetTargetResolution. En su lugar, usa la nueva API deResolutionSelector. (I542c3). - Se agregaron APIs públicas para la cámara dual simultánea, incluidas las siguientes:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)boolean isConcurrentCameraModeOn()yConcurrentCameraConfig,SingleCameraConfigyConcurrentCamera(Iab1c1)
- Se hizo que
ImageProcessor.Response#getOutputImagesea NonNull (Ib9c60). - Se agregaron las APIs de duplicación de
VideoCapture, incluidasVideoCapture.Builder.setMirrorMode(int)yVideoCapture.getMirrorMode(). Las APIs son útiles para las aplicaciones que requieren que la grabación de video sea coherente con el comportamiento común de la vista previa de la cámara, es decir, que la vista previa de la cámara posterior no se duplique, pero sí la de la cámara frontal. (I713b6, b/194634656) - Se agregó la API de
setTargetFrameRate()enVideoCapture.Buildery la API degetTargetFramerate()enVideoCapture(I109d4). - Haz que
SurfaceOutputextienda Closable y oculta el constructor público de SurfaceOutput.Event. (I60ea8) - Se agregó
Recording.mutepara silenciar o activar el sonido de forma dinámica en una grabación en proceso.RecordingStatscontendráAudioStats.AUDIO_STATE_MUTEDcuando la grabación en proceso se silencie de forma explícita. (Ie17fc) - Se hizo que el parámetro
#setEffects()no sea nulo. Se agregó una API de#clearEffects()para borrar efectos. La app debería llamar a#clearEffects()para quitar los efectos. (I4b4d9) - Se agregó un segundo constructor para que
ViewfinderSurfaceRequest.Buildertome un compilador para el constructor de copias (I621a7).
Correcciones de errores
- Se solucionó el problema por el que las apps que invocaban la API de Extensions podían fallar cuando se cerraba la cámara (Ib27e5).
- Se solucionó un problema por el que
VideoCaptureno podía funcionar con la cámara frontal en algunos dispositivos. Por ejemplo, en Samsung Galaxy S23 y Xiaomi 2107113SG. (Ibec7e, b/270656244). - Se solucionó el problema por el cual, en Android 10 o versiones posteriores, siempre fallaba la toma de fotos con File en la carpeta pública de almacenamiento externo. Ten en cuenta que, en Android 10, para tomar fotos con File en la carpeta pública de almacenamiento externo, también se debe establecer
requestLegacyExternalStoragecomo verdadero en la etiqueta de la aplicación. (I11b2c). - Se corrigió una falla de
RejectedExecutionExceptionenDefaultSurfaceProcessor. La falla podría ocurrir cuando se vinculaVideoCapturey se pausa la actividad. (Idb46a, b/273713906).
Versión 1.3.0-alpha05
22 de marzo de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha05. La versión 1.3.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se agregaron las APIs de rotación de
VideoCapture, incluidasVideoCapture.Builder.setTargetRotation(int),VideoCapture.setTargetRotation(int),VideoCapture.setTargetRotationDegrees(int)yVideoCapture.getTargetRotation(). Las APIs son útiles para las aplicaciones que bloquean la orientación del dispositivo. También se agreganImageCapture.setTargetRotationDegrees(int)yImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781). - Permite
VIDEO_CAPTUREyPREVIEW|VIDEO_CAPTUREcomo destino de efectos. Los efectos que se orientan aVIDEO_CAPTUREse aplicarán al UseCaseVideoCapture. Los efectos que se orientan aPREVIEW|VIDEO_CAPTUREse aplicarán a un flujo compartido antes de copiarse en la vista previa y el flujoVideoCapture. (Iee6f3).
Correcciones de errores
- De Camera
1.2.2: Se corrigió el problema por el que las extensiones de CameraX no funcionaban correctamente cuando se habilitaba ProGuard en algunos dispositivos, como Pixel (I90aa2). - Se corrigió un error de
PreviewViewpor el que, si la app controlaba la orientación de la pantalla, la vista previa podía distorsionarse al rotar. Esto solo sucede en algunos dispositivos. Se puede reproducir en Pixel 4a, Pixel 5 y Pixel 6a. (I14340, b/223488673).
Versión 1.3.0-alpha04
22 de febrero de 2023
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha04. La versión 1.3.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
Se agregó una nueva función para admitir combinaciones de Surface que antes no eran compatibles, ya que se comparte una transmisión con varios UseCases.
- Anteriormente, cuando se vinculaba “Preview, VideoCapture, ImageAnalysis” en el nivel de hardware de la cámara FULL y versiones anteriores, o se vinculaba “Preview, VideoCapture, ImageCapture” en el nivel de hardware LEGACY, CameraX arrojaba
IllegalArgumentException. - El comportamiento nuevo es que las vinculaciones funcionarán sin arrojar excepciones. En su lugar, CameraX usa OpenGL para copiar un flujo compartido en Preview y VideoCapture.
- Como costo de la copia del búfer, la app puede experimentar un aumento en la latencia y el consumo de energía.
Cambios en la API
- Se agregó una API para convertir
ImageProxyenBitmap. Los formatos deImageProxyadmitidos sonImageFormat.YUV_420_888yPixelFormat.RGBA_8888. Si el formato no es válido, se arrojaráIllegalArgumentException. (Ic7110) - Se agregó
CoroutineCameraViewfinderpara admitir la configuración del visor con funciones de suspensión en Kotlin. (I657bc) - Se agregó un nuevo constructor público para
ViewfinderSurfaceRequest. Proporciona flexibilidad cuando el usuario no puede proporcionarCameraCharacteristics. (Ie6549).
Correcciones de errores
- Se corrigió la falla de las extensiones que se producía en algunos dispositivos Samsung cuando se pausaba o reanudaba la app con demasiada rapidez (Iaca26).
Versión 1.3.0-alpha03
25 de enero de 2023
Se lanzó androidx.camera:camera-*:1.3.0-alpha03. La versión 1.3.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se agregó
CameraInfo.getIntrinsicZoomRatiopara proporcionar información sobre el ángulo de visión en relación con la cámara predeterminada (Ib300c). - Se agregó
CameraInfo.getLensFacingpara proporcionar información de la lente. Se agregóCameraSelector#LENS_FACING_EXTERNALcomo función experimental para seleccionar cámaras externas (Icaf3e). - Agrega
#setEffect()aCameraController, que permite agregar efectos a la salida de la cámara (I1d21f). - Se agregó el método
invalidate()aSurfaceRequest. El proveedor de Surface puede notificar que la plataforma proporcionada anteriormente ya no es válida (Idc649). - Se agregó una API de
ImageProcessor. Esta interfaz es para insertar efectos de posprocesamiento en la canalización deImageCapture(I575c6). - Se agregó la API de
Recorder.Builder.setAspectRatio(), que se puede combinar conQualitySelectorpara admitir más resoluciones de video (I8a082). - Se agregó
Recorder.Builder#setTargetVideoEncodingBitRatepara establecer laBitRatede la codificación del video objetivo yRecorder#getTargetVideoEncodingBitRatepara obtener la tasa de bits de la codificación del video objetivo (I5984d).
Correcciones de errores
- Se corrigió un error de
ImageCaptureque se producía cuando no había unidades de flash y el modo de flash estaba activado (I9e8b4, b/263391112). - Se corrigió el error de corrupción de imágenes JPEG cuando se escribían datos de ubicación EXIF en algunos dispositivos Samsung con Android 12 (Ib7086, b/263747161, b/263289024).
- Cuando se configura el modo linterna o zoom antes de que se complete la inicialización de la cámara, p. ej., cuando se llama a
CameraController#enableTorch, la acción pendiente se almacena en caché y se envía una vez que se completa la inicialización (I11e92, b/264157663).
Versión 1.3.0-alpha02
7 de diciembre de 2022
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha02. La versión 1.3.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se agregó una nueva API para aplicar el efecto de posprocesamiento a la vista previa de salida (Ic17d5).
- Se cambió el nombre de
OutputOptions.getDurationLimitporOutputOptions.getDurationLimitMillisy el deOutputOptions.setDurationLimitporOutputOptions.setDurationLimitMillis(I91f0c). - Se agregó la clase
AudioConfigpara controlar el parámetro de configuración de audio mientras se graba un video. La anotación@RequiresPermissionse traslada de las funcionesstartRecordingaAudioConfigpara evitar solicitudes de permisos innecesarias para los casos en que no se necesita audio (I28755). - Se quitaron las clases
OnVideoSavedCallback,OutputFileOptions,OutputFileResultsy Metadatos que ya no se usan después de aplicar la nueva API de captura de video (I38cd8). - Aplica la nueva API de captura de video. Los métodos
getVideoCaptureTargetSizeysetVideoCaptureTargetSizese reemplazan por los métodosgetVideoCaptureTargetQualityysetVideoCaptureTargetQuality, debido a quesetTargetResolutionya no es compatible (I2a1d5).
Correcciones de errores
- Se quitó la API
core.VideoCaptureobsoleta (I531e0). - Se solucionó el problema por el que no se llamaba a la devolución de llamada
onErrorcuando se tomaban fotos sin el permiso de almacenamiento (I936db, b/244807669). - Mejora la calidad y la confiabilidad de las extensiones de cámara. Las extensiones de cámara se inhabilitaron en los dispositivos Motorola que usan la versión 1.1.0 y anteriores debido a problemas con la compatibilidad con Bokeh, la captura de imágenes y la vista previa sin reanudar (Id3ce3).
- Se corrigió la falla por error en código nativo que se producía cuando se habilitaba el recorte de video mediante
ViewPorten dispositivos heredados (I16b8a, b/251357665).
Versión 1.3.0-alpha01
9 de noviembre de 2022
Lanzamiento de androidx.camera:camera-*:1.3.0-alpha01. La versión 1.3.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
Camera-viewfinderse publicó oficialmente.Camera-viewfinderproporciona un widget de visor básico que puede mostrar el feed de la cámara de Camera2. Revisa el código de muestra para ver un ejemplo.
Cambios en la API
- Se agregó
OutputOptions.setDurationLimitpara permitir la configuración del límite de duración de video. La grabación finalizará automáticamente cuando se exceda el límite de duración especificado. (I902a0) - Agrega el estado de error de audio de grabación de video
AudioStats.AUDIO_STATE_SOURCE_ERROR. Se envía cuando la configuración de la fuente de audio falla o se produce algún error. (I37410)
Correcciones de errores
- Agrega la peculiaridad para permitir que algunos dispositivos problemáticos vuelvan a intentar la captura una vez cuando se encuentren fallas. (Id4795)
- Se solucionó el problema de pantalla negra de la implementación de
PreviewViewSurfaceViewenViewPager2. Como parte de la corrección,PreviewViewvolverá a usar suSurfaceViewsi no se cambia la resolución solicitada. (Ib3f27) - Se agregó compatibilidad con el recorte de videos (función WYSIWYG) cuando se usa la API de
ViewPortoCameraController. (Ifbba8, b/201085351) - Se solucionó el problema por el que el video capturado con la cámara frontal no se podía grabar en Huawei P40 lite. (I87c57, b/250807400)
Versión 1.2
Versión 1.2.3
24 mayo 2023
Lanzamiento de androidx.camera:camera-*:1.2.3. La versión 1.2.3 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó un problema por el que
VideoCaptureno podía funcionar con la cámara frontal en algunos dispositivos. Por ejemplo, en Samsung Galaxy S23 y Xiaomi 2107113SG. (Ibec7e, b/270656244).
Versión 1.2.2
22 de marzo de 2023
Lanzamiento de androidx.camera:camera-*:1.2.2. La versión 1.2.2 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó el problema por el que las extensiones de CameraX no funcionaban correctamente cuando se habilitaba ProGuard en algunos dispositivos, como Pixel (I90aa2).
Versión 1.2.1
25 de enero de 2023
Se lanzó androidx.camera:camera-*:1.2.1. La versión 1.2.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error de corrupción de imágenes JPEG cuando se escribían datos de ubicación EXIF en algunos dispositivos Samsung con Android 12 (b/263289024).
Versión 1.2.0
7 de diciembre de 2022
Lanzamiento de androidx.camera:camera-*:1.2.0. La versión 1.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.1.0
- Nueva biblioteca camera-mlkit-vision. Integra CameraX fácilmente con muchas funciones de MLKit, como escaneo de código de barras, detección de rostro, detección de texto, etc. Se agregó
MLKitAnalyzercomo APIs nuevas. - Nueva API de retraso sin obturador experimental. Optimiza la canalización de captura para tener una mejor latencia mientras mantienes una buena calidad de la imagen. Cuando el modo de captura está configurado en
CAPTURE_MODE_ZERO_SHUTTER_LAG, se hace clic en la latencia entre el botón del obturador y se espera que la foto que se toma se minimice, en comparación con otros modos de captura. En los dispositivos que no son compatibles conZERO_SHUTTER_LAG, se recurrirá aCAPTURE_MODE_MINIMIZE_LATENCY. android.camera.core.VideoCapturedejó de estar disponible.- Se agregó
setStreamUseCase()como una API pública deCamera2Interop. - Se agregó el requisito de nivel de API para
setOutputImageRotationEnabled. - Se cambió el nombre de
ImageAnalysis.Analyzer#getTargetResolutionOverride()aImageAnalysis.Analyzer#getDefaultTargetResolution(). - Se agregó la API para configurar metadatos de ubicación en el video guardado.
- Se corrigió la velocidad de fotogramas baja cuando se aplican los casos de uso de
VideoCapturey de vista previa con una relación de aspecto de 16:9. - Se solucionó el problema de la vista previa en negro que se producía cuando se habilitaba la extensión BOKEH en algunos dispositivos Samsung y el usuario cambiaba de cámara
- Se corrigió problema extendido de
Preview/VideoCaptureen Samsung J7 Prime (SM-G610M) y J7 (SM-J710MN), en dispositivos con el nivel de API 27. - Se inhabilitó la solución alternativa para girar horizontalmente la región AF de las cámaras frontales en Samsung y Android T, ya que se solucionó el problema.
Versión 1.2.0-rc01
24 de octubre de 2022
Lanzamiento de androidx.camera:camera-*:1.2.0-rc01. La versión 1.2.0-rc01 contiene estas confirmaciones.
Cambios en la API
- Se agregó la API de
setStreamUseCaseparaOutputConfiguration. El usuario puede especificar el caso de uso de Stream para la sesión de transmisión y anular las lógicas internas de CameraX que lo eligen, a fin de realizar optimizaciones según sus necesidades (Ib1a95).
Correcciones de errores
- Se corrigió problema extendido de
Preview/VideoCaptureen Samsung J7 Prime (SM-G610M) y J7 (SM-J710MN), en dispositivos con el nivel de API 27. La resolución 1920 x 1080 hace que las imágenesPreview/VideoCapturese estiren. Se agregó una solución alternativa a fin de no seleccionar la resolución de 1920 x 1080 para la vista previa o laVideoCapturey así evitar el problema de estiramiento de la imagen (I0e04e). - Se corrigió la velocidad de fotogramas baja cuando se aplican los casos de uso de
VideoCapturey vista previa con una relación de aspecto de 16:9 en algunos dispositivos Huawei (If8c88, b/223643510). - Se corrigió un error que se producía al intentar abrir la cámara cuando no estaba configurado el
SurfaceProviderde la vista previa. Como parte de la corrección, la vista previa sinSurfaceProviderestablecido ahora no se configurará en la sesión de captura de la cámara (I99681).
Versión 1.2.0-beta02
21 de septiembre de 2022
Se lanzó androidx.camera:camera-*:1.2.0-beta02. La versión 1.2.0-beta02 contiene estas confirmaciones.
Cambios en la API
- Se agregó un requisito de nivel de API para
setOutputImageRotationEnabled(I26e3e y b/240993561).
Correcciones de errores
- Se inhabilitó la solución alternativa para girar horizontalmente la región AF de las cámaras frontales en Samsung y Android T, ya que se solucionó el problema (I05f69).
- Se solucionó el problema de la vista previa en negro que se producía cuando se habilitaba la extensión
BOKEHen algunos dispositivos Samsung y el usuario cambiaba de cámara (If6168).
Versión 1.2.0-beta01
24 de agosto de 2022
Se lanzó androidx.camera:camera-*:1.2.0-beta01. La versión 1.2.0-beta01 contiene estas confirmaciones.
Nuevas funciones
- Nueva biblioteca
camera-mlkit-vision. Integra de manera sencilla CameraX con muchas funciones de MLKit, como escaneo de código de barras, detección de rostro, detección de texto, etc. Encuentra el código de muestra aquí. - Nueva API de retraso sin obturador experimental. Optimiza la canalización de captura para tener una mejor latencia mientras mantienes una buena calidad de la imagen. Cuando el modo de captura está configurado en CAPTURE_MODE_ZERO_SHUTTER_LAG, se hace clic en la latencia entre el botón del obturador y se espera que la foto que se toma se minimice, en comparación con otros modos de captura. En los dispositivos que no admiten ZERO_SHUTTER_LAG, se recurrirá a CAPTURE_MODE_MINIMIZE_LATENCY.
ImageAnalysis.AnalyzeryMLKitAnalyzerahora son APIs oficiales.- Se expuso la API para configurar metadatos de ubicación en el video guardado.
- Se cambió el nombre de
ImageAnalysis.Analyzer#getTargetResolutionOverride()porImageAnalysis.Analyzer#getDefaultTargetResolution().
Correcciones de errores
- Se corrigió el problema de captura de imágenes de Alps k61v1_basic_ref. Las imágenes JPEG capturadas de la HAL tienen metadatos EXIF incorrectos. Los metadatos EXIF no tienen la etiqueta 0xffd9 ni 0xffda para que
ExifInterfaceanalice correctamente los atributos. Se puede capturar las imágenes en formato YUV y, luego, comprimirlas en imágenes JPEG de salida para solucionar este problema (I45abb).
Versión 1.2.0-alpha04
27 de julio de 2022
Lanzamiento de androidx.camera:camera-*:1.2.0-alpha04. La versión 1.2.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de
ImageAnalysis.Analyzer#getTargetResolutionOverride()porImageAnalysis.Analyzer#getDefaultTargetResolution(). También se cambió el comportamiento para que el valor deImageAnalysis#setTargetResolution()pueda anular el valor que muestra este método (If1d36). - Se expuso la API para configurar metadatos de ubicación en el video guardado. Se puede configurar un objeto
android.location.Locationa través de la nueva APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)(I313a0, b/204197544).
Correcciones de errores
- Se corrigió el problema para tomar una foto con la vista previa de desvinculación (Ie70b6, b/235119898).
- Se corrigió una falla en
Recorderque se producía cuando se intentaba grabar mientras la fuente de audio no estaba disponible (I9f652).
Versión 1.2.0-alpha03
29 de junio de 2022
Se lanzó androidx.camera:camera-*:1.2.0-alpha03. La versión 1.2.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se quitó la anotación experimental para
ImageAnalysis.AnalyzeryMLKitAnalyzer(I0ff22).
Correcciones de errores
- Se agregó un tiempo de espera predeterminado de 5,000 ms para el enfoque automático que completará la parte de AF con
isFocusSuccessfulcomo falso si no se cancelaFocusMeteringActiony la parte de AF no se converge en la duración (Ibc2e3). - Se corrigió el problema para tomar una foto con la vista previa de desvinculación (I1d3a2, b/235119898).
- Se habilitó la implementación de extensores avanzados y se actualizó la versión de interfaz de extensiones de CameraX a la versión 1.2 (I92256).
Versión 1.2.0-alpha02
1 de junio de 2022
Se lanzó androidx.camera:camera-*:1.2.0-alpha02. La versión 1.2.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Se expuso la API de retraso de obturador cero de CameraX como experimental.
Cambios en la API
- Agrega el nuevo modo de captura
CAPTURE_MODE_ZERO_SHUTTER_LAGenImageCapturey agregaisZslSupportedenCameraInfopara consultar la capacidad del dispositivo. El modoCAPTURE_MODE_ZERO_SHUTTER_LAGtiene como objetivo proporcionar la latencia mínima para la captura instantánea. Se implementa en función de un búfer de anillo, que almacena en caché los resultados de captura intermedia para su reprocesamiento posterior cuando el usuario presiona los botones para tomar fotos. Si {@link VideoCapture} está vinculado o el modo del flash no está DESACTIVADO o la extensión del OEM está ACTIVADA, este modo se inhabilitará automáticamente (I9ae74). - Se agregó el método
ImageAnalysis.getBackgroundExecutor()(Icc945).
Correcciones de errores
- Se corrigió el método
ImageCapturede TakePicture que apaga la linterna en los dispositivos informados (Ib5eb5, b/228272227). - Se corrigió un error en el que no se controlaba
AssertionErroral obtener la característica deCONTROL_ZOOM_RATIO_RANGE(/Ia248a, b/231701345).
Versión 1.2.0-alpha01
18 de mayo de 2022
Se lanzó androidx.camera:camera-*:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se lanzó la nueva biblioteca camera-mlkit-vision
Correcciones de errores
- Se corrigió
QualitySelectorque no graba un video UHD cuando se habilita una estrategia de resguardo. El problema ocurre cuandoVideoCaptureestá vinculado conImageCapturey la vista previa en una cámara con nivel de hardware COMPLETO o superior. Una estrategia de resguardo deQualitySelectorhace queVideoCaptureobtenga una resolución FHD de manera incorrecta. La resolución UHD es compatible con esta combinación de casos de uso y debe adoptarse. (I0e788, b/230651237) - Se corrigió
NullPointerExceptionenImageCapture.takePicture()(I92366, b/230454568 y b/229766155). - Se corrigió el comportamiento de pausa asíncrona de
androidx.camera.video.Recorder(Ia8ce8).
Camera-Camera2, Camera-Core, Camera-Lifecycle y Camera-Video versión 1.1.0
Versión 1.1.0
29 de junio de 2022
Se lanzó androidx.camera:camera-*:1.1.0. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde 1.0.0
- Las bibliotecas deLand View, Extension y Video Capture como su primera versión RC. A partir de la versión 1.1.0-beta01, todas las bibliotecas de CameraX se alinearán con el mismo número de versión. Esto permitirá que los desarrolladores puedan hacer un seguimiento de las versiones de manera más sencilla y que se reduzca la complejidad de las matrices de compatibilidad de versiones grandes.
- Se introdujeron nuevas APIs y funciones públicas, incluidas las siguientes:
- Se agregó la biblioteca oficial de cámara y video a fin de admitir casos de uso de captura de video.
- Se agregó capacidad de conversión de YUV a RGB y rotación (
ImageAnalysis.Builder.setOutputImageRotationEnabledysetOutputImageFormat) - Se agregó compatibilidad con el modo multiventana permitiendo que las aplicaciones de CameraX reanuden la cámara cuando la interrumpa otra app y se vuelva a enfocar.
- Se corrigieron algunos problemas de vista previa para garantizar que CameraX funcione correctamente en dispositivos plegables.
- Se agregó una API de
CameraStateque se expondrá a través de CameraInfo. - Se agregó una API de
ProcessCameraProvider.getAvailableCameraInfos()para recuperar directamente información sobre las cámaras disponibles. - Se agregó el formato de salida JPEG para
ImageCapture#OnImageCapturedCallbackcuando las extensiones están habilitadas. - Se agregó una API
isFocusMeteringSupportedenCameraInfoque permite a las aplicaciones verificar si elFocusMeteringActiondeterminado es compatible con la cámara actual o no. - Se expuso la API de
getResolutionInfoa fin de proporcionar la información de resolución para Preview,ImageCaptureyImageAnalysis. - Se agregó una nueva API de
ImageCapture.Builder#setJpegQualitypara permitir el cambio de la calidad de compresión de las imágenes JPEG de salida cuando se toman fotos. - Se agregó
CameraSelector#filtera la API pública para filtrar una lista deCameraInfosbasada en unCameraSelector. - Se agregó
Camera2CameraControl.clearCaptureRequestOptionspara borrar las opciones de solicitud de captura existentes. - Se agregó una API experimental para usar
CameraControllercon bibliotecas de procesamiento de imágenes externas (p. ej., MLKit). - Se agregó la API experimental de
CameraInfo#getCameraSelector(), que muestra un objetoCameraSelectorúnico en su cámara. - Se ascendieron varias APIs experimentales a APIs públicas formales.
- Se reemplazó la anotación
@Experimentalpor@RequiresOptInpara las APIs experimentales. Para llamar a las APIs experimentales, usa androidx.annotation.OptIn en lugar del recurso obsoleto androidx.annotation.experimental.UseExperimental. - Se ascendieron las siguientes APIs experimentales a APIs oficiales:
CameraXConfig.Builder#setAvailableCamerasLimiter(),CameraXConfig.Builder#setMinimumLoggingLevel(),CameraXconfig.Builder#setSchedulerHandler(),CameraXConfig#getAvailableCamerasLimiter(),CameraXConfig#getMinimumLoggingLevel(),CameraXConfig#getCameraExecutor(),CameraXConfig#getSchedulerHandler(), - APIs de
@ExperimentalCameraFilter - APIs de compensación de exposición experimentales.
- Se ascendió la API experimental de
UseCaseGrouppara camera-core, camera-lifecycle y camera-video. Se agregaronViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectionyViewPort.Builder#setScaleTypepara personalizar viewport. - Se ascendió
ExperimentalUseCaseGroupLifecyclea API pública formal. - Cambios en las APIs existentes
Renamed MediaStoreOutputOptions.getCollectionparaMediaStoreOutputOptions.getCollectionUri.- Se cambió el nombre de
ActiveRecordinga "Recording" para reducir la verbosidad. - Se cambió la API de creador de
QualitySelectora una API basada en listas.
Correcciones de errores
- Se solucionó el problema
YuvToJpegProcessorEOFExceptioncuando el modo de extensión está habilitado y se configura el modoImageCapture#CAPTURE_MODE_MAX_QUALITY. - Se corrigió la configuración de códec fallida debido a que se cortaba la grabación de video.
- Se solucionó la vista previa extendida de relación de aspecto del video al grabar en FHD.
- Se corrigieron la sincronización de audio y video después de pausar y reanudar en algunos dispositivos.
- Se solucionó el problema por el cual se activaba el flash durante la función Presiona para enfocar (
startFocusAndMetering) cuando el modo de flash se establecía en automático o siempre encendido en entornos con poca luz.
Versión 1.1.0-rc02
1 de junio de 2022
Se lanzó androidx.camera:camera-*:1.1.0-rc02. La versión 1.1.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió
NullPointerExceptionenImageCapture.takePicture()(I92366, b/230454568 y b/229766155). - Se corrigió un error por el que
AssertionErrorno se controlaba cuando se obtenía la característicaCONTROL_ZOOM_RATIO_RANGE(Ia248a, b/231701345).
Versión 1.1.0-rc01
11 de mayo de 2022
Se lanzó androidx.camera:camera-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.
Nuevas funciones
- Lanzamiento de la primera versión de RC para Camera-Video, Camera-View y Camera-Extension
Correcciones de errores
- Se solucionó un problema en el que no se liberaba el códec de video cuando se desvinculaba
VideoCapture<Recorder>, lo que provocaba que los usos posteriores deVideoCapture<Recorder>no se grabaran conMediaCodec.CodecException, especialmente en dispositivos con API 21-22 (Ie7f68). - No se borrarán las imágenes capturadas de
CameraExtensionsActivityenImageCaptureTest.
Versión 1.1.0-beta03
6 de abril de 2022
Lanzamiento de androidx.camera:camera-*:1.1.0-beta03. La versión 1.1.0-beta03 contiene estas confirmaciones.
Cambios en la API
- Se restringió el constructor
CaptureRequestOptions(I261b6). - Se agregó una API experimental para usar
CameraControllercon bibliotecas de procesamiento de imágenes externas, p. ej., MLKit (I4ea71).
Correcciones de errores
- Se corrigió el problema por el que la vista previa se volvía lateral en
PreviewViewcuando la actividad no se reiniciaba después de rotar dispositivos en el modo multiventana (I1ea36, b/223488673). - Se corrigió un problema del modo multiventana que cuando el foco vuelve a la app, no se reanuda la cámara cuando (1) otra app de alta prioridad abre una cámara diferente o (2) el dispositivo es un dispositivo Samsung de Android 12 (I7e9f2).
- Se incluye una solución alternativa para los dispositivos que fallan cuando se verifica la disponibilidad del flash. Estos dispositivos no tendrán una linterna disponible (If26a3, b/216667482).
- Se corrigió el problema
AbstractMethodErrorque se producía cuando las apps usaban extensiones y habilitaban ProGuard (I7cbaf, b/222726805). - Se forzó la inhabilitación del modo de extensión de bokeh en el dispositivo Motorola Razr 5G, lo que generará un problema de pantalla de vista previa en negro (I35d49).
- Se corrigió el problema por el que el audio o el video no estaban sincronizados después de pausar y reanudar la reproducción en algunos dispositivos Samsung antes de la API 29 (I64622, b/202798609, b/202798572).
- Se corrigió el audio o el video que no estaban sincronizados después de pausar y reanudar la reproducción en dispositivos Sony G3125 (I2a1a5, b/202799148).
- Se corrigió una falla que se producía cuando la grabadora encontraba un
InvalidConfigException. Sin embargo, esta corrección solo evita que la app falle, pero no resuelve la causa deInvalidConfigException. SiRecorderaún no se puede configurar, las aplicaciones recibirán una devolución de llamada de error cuando comiencen a grabar (I89c29, b/213617227).
Contribución externa
- Se actualizó la API de :compose:ui:ui-test (updateApi) debido a la migración de test-coroutines-lib (I3366d).
Versión 1.1.0-beta02
23 de febrero de 2022
Lanzamiento de androidx.camera:camera-*:1.1.0-beta02. La versión 1.1.0-beta02 contiene estas confirmaciones.
Cambios en la API
- Se agregó la capacidad de especificar el ID de la cámara física mediante Camera2Interop (I5aed8).
Correcciones de errores
- Se corrigió el problema de vista previa extendida en Oppo Find N (I7d004).
- Se solucionó un problema del Galaxy J7 Prime por el que se veía distorsionada la vista previa (I4c500).
- Usa la tasa de bits compatible para encontrar el codificador de video (d969052).
Versión 1.1.0-beta01
26 de enero de 2022
Lanzamiento de androidx.camera:camera-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.
Nuevas funciones
- A partir de la versión 1.1.0-beta01, todas las bibliotecas de CameraX se alinearán con el mismo número de versión. Esto permitirá que los desarrolladores puedan hacer un seguimiento de las versiones de manera más sencilla y que se reduzca la complejidad de la matriz cuando se tengan muchas versiones.
Cambios en la API
- Se agregó
Camera2CameraControl.clearCaptureRequestOptionspara borrar las opciones de solicitud de captura existentes. (Ifa07d)
Correcciones de errores
- Se solucionó la falla que se producía cuando se grababa video en algunos dispositivos anteriores a Android O (nivel de API 26). (I88fdf, b/212328261)
- Se corrigió el problema incorrecto de región de AF cuando se usaba
cameraControl#startFocusAndMetering()en la cámara frontal del lente en dispositivos Samsung. (Ifbf59, b/210548792) - Se usa la linterna en el Pixel 3a o el Pixel 3a XL para mejorar la velocidad y la calidad de la imagen que se captura en la oscuridad. (Ib12b6, b/211474332)
- Se habilitaron las aplicaciones para reanudar la cámara cuando otra aplicación de mayor prioridad en el modo multiventana la interrumpe y el enfoque vuelve a la aplicación. Ten en cuenta que puede existir alguna latencia (de 1 a 10 segundos o más) entre los cambios de enfoque y la reapertura de la cámara debido a algún problema en el framework. (I4d092)
Versión 1.1.0-alpha12
15 de diciembre de 2021
Lanzamiento de androidx.camera:camera-*:1.1.0-alpha12. La versión 1.1.0-alpha12 contiene estas confirmaciones.
Cambios en la API
- Se quitaron las anotaciones
@RequiresApi(21)innecesarias de las clases y las interfaces internas. (I8e286, b/204917951) - Se cambiaron las constantes de calidad y las de estrategia de resguardo de
QualitySelectorpara que se representen con objetos de clase. Por ejemplo,QualitySelector.QUALITY_HDse cambia aQuality.HD, yQualitySelector.FALLBACK_STRATEGY_LOWERse cambia a la instancia que muestraFallbackStrategy.lowerQualityOrHigherThan(Quality). La API que se usó para crearQualitySelectorse cambió a una API basada en listas. La nueva API deQualitySelector.fromOrderedList(List<Quality>)hará referencia al orden de la lista de calidad de entrada, en lugar de al orden creado porQualitySelector.Procedure. Se quitó la claseQualitySelector.Procedure. (I43343) - Se quitó
PendingRecording.withEventListener(), y el objeto de escucha de eventos ahora se debe pasar aPendingRecording.start(). Este requisito del objeto de escucha de eventos tiene el propósito de fomentar el manejo de errores asíncronos que se informan en el eventoVideoRecordEvent.Finalize. (I1e71d) - Se cambió el nombre de
ActiveRecordingporRecordingpara reducir la verbosidad. (I77ceb)
Correcciones de errores
- Se solucionó el problema por el que las fotos capturadas en modo
FLASH_AUTOestaban subexpuestas en condiciones oscuras en Pixel 3a y Pixel 3a XL. (I13f19, b/205373142) - Usa siempre el tamaño de pantalla más reciente para determinar la vista previa de
Resolution. (I4a694) - Se filtraron las cámaras que no tienen
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Las cámaras conREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEtienen el conjunto mínimo de capacidades que admiten todos los dispositivos de cámara. Una cámara que no tengaREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEpodría ser una que admita una funcionalidad especial y no admita la salida de color estándar.CameraXno admite los casos de uso dePreview,ImageCapture,ImageAnalysisniVideoCapturepara esas cámaras. Por lo tanto, se deberían filtrar para evitar un uso incorrecto. (Ib8cda) CameraSelector#filterya no arroja unaIllegalArgumentExceptioncuando el conjunto de resultados está vacío. (I27804)- Ahora se usan heurísticas más inteligentes para seleccionar la configuración del codificador según los perfiles especificados por el OEM. (Iaeef0)
- Se corrigió la vista previa con líneas de colores entrelazadas después de iniciar la grabación de video UHD en Pixel1. (I833c6, b/205340278)
Versión 1.1.0-alpha11
17 de noviembre de 2021
Lanzamiento de androidx.camera:camera-*:1.1.0-alpha11. La versión 1.1.0-alpha11 contiene estas confirmaciones.
Cambios en la API
- Se agregó CameraSelector#filter a la API pública para filtrar una lista de CameraInfos que se basa en CameraSelector. (I105d0)
Se agregó la API de setOutputImageRotationEnabled para la configuración de ImageAnalysis. El usuario puede habilitar la rotación del búfer de imágenes YUV/RGB. El grado de rotación es relativa y se calcula en función de la rotación del sensor y de destino para mantener la imagen en primer plano.
Se agregó la API de setOutputImageRotationEnabled para la configuración de ImageAnalysis. El usuario puede habilitar la rotación del búfer de imágenes YUV/RGB. El grado de rotación es relativa y se calcula en función de la rotación del sensor y de destino para mantener la imagen en primer plano.
Se agregó la API de
getSensorToBufferTransformMatrixen ImageInfo. La matriz que se muestra es una asignación de coordenadas de sensores a coordenadas de búfer, es decir, del valor deCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEa(0, 0, image.getWidth, image.getHeight). La matriz se puede usar para asignar las coordenadas de un {UseCase} a otro. Por ejemplo, asignar a Preview las coordenadas del rostro detectadas con ImageAnalysis. (I9ff1e)Se agregó una nueva API de ImageCapture.Builder#setJpegQuality para permitir cambiar la calidad de compresión de las imágenes JPEG de salida cuando se toma una foto. (I8dcf4)
Se cambió el nombre de MediaStoreOutputOptions.getCollection por MediaStoreOutputOptions.getCollectionUri. (I16639)
Correcciones de errores
- Se solucionó el problema por el cual se activaba el flash durante la función Presiona para enfocar (startFocusAndMetering) cuando el modo de flash se establecía en automático o siempre encendido en entornos con poca luz. (Id4c11)
- Se inhabilitó HDR+ en Pixel 2 XL y Pixel 3 XL en el modo MINIMIZE_LATENCY para reducir la latencia. (Ib6270, b/203505523)
Contribución externa
Versión 1.1.0-alpha10
13 de octubre de 2021
Lanzamiento de androidx.camera:camera-*:1.1.0-alpha10. La versión 1.1.0-alpha10 contiene estas confirmaciones.
Nuevas funciones
- Se lanzó, de forma oficial,
androidx.camera:camera-video:1.1.0-alpha10como la primera versión alfa de video. Se deben corregir varios problemas conocidos en las versiones posteriores.
Cambios en la API
- Se agregó la anotación
@RequiresApi(21)a todas las clases de CameraX y se descartó minSdkVersion de AndroidManifest.xml. De esta manera, se permitirá que camera-core se integre con facilidad a las aplicaciones que tienen una versión de minSdkVersion inferior a 21, pero que quieran usar, de manera condicional, rutas de código que se basen en el nivel de API 21 y versiones posteriores. Para cualquier aplicación con minSdkVersion 21 o posterior, este cambio no requiere ninguna acción. (Ie7f2e, b/200599470)
Correcciones de errores
- Se arroja una InitializationException de modo que la app pueda controlar correctamente el AssertionError que ocurre durante la creación de CameraCharacteristics. (Ibec79)
Versión 1.1.0-alpha09
29 de septiembre de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 y androidx.camera:camera-lifecycle:1.1.0-alpha09. La versión 1.1.0-alpha09 contiene estas confirmaciones.
Cambios en la API
- Ahora que las API ya no son experimentales, se quitó la anotación ExperimentalUseCaseGroup. (I01ef5)
Correcciones de errores
- Se solucionó el problema en el que se desenfocaban las fotos que se capturaban en el modo
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Se solucionó un problema de Samsung Galaxy J5 por el que la cámara se bloqueaba después de tomar fotos con el flash activado o automático en ambientes oscuros. (I3aab9)
- Cuando es necesario utilizar un recorte para ImageCapture, se comprime la imagen recortada resultante con el nivel de calidad de JPEG especificado según el modo de captura establecido. Si el modo de captura es
CAPTURE_MODE_MINIMIZE_LATENCY, la calidad de compresión JPEG será de 95. Si el modo de captura esCAPTURE_MODE_MAXIMIZE_QUALITY, la calidad de compresión JPEG será de 100. (Ieb37c, b/142856426)
Versión 1.1.0-alpha08
18 de agosto de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08 y androidx.camera:camera-lifecycle:1.1.0-alpha08. La versión 1.1.0-alpha08 contiene estas confirmaciones.
Nuevas funciones
- Se agregó la API de setOutputImageFormat para configurar el análisis de imágenes. El usuario puede seleccionar ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 o ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. De forma predeterminada, se seleccionará ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
Cambios en la API
- Ahora que las API ya no son experimentales, se quitó la anotación ExperimentalUseCaseGroupLifecycle. (I17b85)
Correcciones de errores
- Se corrigió el brillo de la pantalla de vista previa en el Huawei P20 Lite. Este problema solo ocurre cuando se usan ciertas resoluciones especiales de vista previa junto con un valor de acercamiento grande. (Idefce, b/192129158)
- Se corrigió un problema por el que el flash no funcionaba en algunos dispositivos cuando se configuraba el modo de flash en FLASH_MODE_ON y, al poco tiempo, se tomaban fotos. (Ieb49b)
- Se corrigió el problema por el que se detenía la vista previa por un tiempo cuando se tomaban fotos si VideoCapture, ImageCapture y Preview estaban vinculados. (I56197, b/193864120)
- Se permite que ImageAnalysis seleccione una resolución superior a 1080p. Un dispositivo superior al nivel LIMITED puede admitir una resolución de tamaño RECORD para ImageAnalysis cuando está vinculado junto con Preview y ImageCapture. La compensación es la resolución seleccionada para ImageCapture. También debe ser una resolución de tamaño RECORD. A fin de seleccionar de manera correcta una resolución de tamaño RECORD para ImageAnalysis, se debe establecer una resolución objetivo de tamaño RECORD en ImageCapture y en ImageAnalysis. De esta manera, se indica que la aplicación comprende con claridad la compensación y prefiere que ImageAnalysis tenga una resolución superior en lugar de que ImageCapture tenga una resolución MAXIMUM. Para obtenés más información sobre las definiciones de los tamaños RECORD, MAXIMUM y otros detalles, consulta https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. El tamaño RECORD se refiere a la resolución máxima de grabación que admite el dispositivo de cámara, según lo que determina CamcorderProfile. El tamaño MAXIMUM hace referencia a la resolución máxima de salida del dispositivo de cámara para ese formato u objetivo de StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Se agregó información sobre Exif a la imagen capturada. (I01ff0, b/193342619)
- En ImageCapture, se muestra el URI de la imagen guardada si la ubicación en la que se guarda es File. (Ib5b49, b/149241379)
- Se corrigió un problema por el que las imágenes capturadas con flash se veían oscuras en muchos dispositivos. (I4e510)
Versión 1.1.0-alpha07
21 de julio de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha07, androidx.camera:camera-core:1.1.0-alpha07 y androidx.camera:camera-lifecycle:1.1.0-alpha07. La versión 1.1.0-alpha07 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó un problema de Samsung Galaxy Note 5 por el que la cámara se atascaba después de tomar fotos con flash activado y automático en un entorno oscuro. (If6871)
- Se solucionó el problema
YuvToJpegProcessorde EOFException cuando el modo de extensión está habilitado y se configura el modoImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd, b/192017012)
Versión 1.1.0-alpha06
30 de junio de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha06, androidx.camera:camera-core:1.1.0-alpha06 y androidx.camera:camera-lifecycle:1.1.0-alpha06. La versión 1.1.0-alpha06 contiene estas confirmaciones.
Cambios en la API
- Se promocionaron las API experimentales de compensación de exposición para camera-core. (I08ee8)
- Se agregó una API de isFocusMeteringSupported en CameraInfo que permite que las aplicaciones verifiquen si un elemento FocusMeteringAction determinado es compatible con la cámara actual o no. (Ib45ae, b/188606490)
- Se expuso la API de getResolutionInfo a fin de brindar la información de la resolución para Preview, ImageCapture e ImageAnalysis. (I2b613, b/188600718)
- Se promocionaron las siguientes API experimentales para las API oficiales: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Se expuso la interfaz CameraProvider para brindar acceso a un conjunto de cámaras. (I1a7b1)
- Se promocionó la API experimental de UseCaseGroup para camera-core, camera-lifecycle y camera-video. Se agregaron
ViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectionyViewPort.Builder#setScaleTypepara personalizar viewport. (I7cee8)
Versión 1.1.0-alpha05
2 de junio de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05 y androidx.camera:camera-lifecycle:1.1.0-alpha05. La versión 1.1.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se quitó la clase
Camera2CameraFilter. Sugiere que selecciones la cámara mediante CameraFilter y recupera la información de CameraCharacteristics y otra información relacionada con Camera2CameraInfo si es necesario. (Ib887c) - Ya finalizó la etapa experimental de las API de
ExperimentalCameraFilter, por lo que ya son formales. Se pueden usar sin el elemento OptIn anotado. (I4bc94) - Se agregó la API de estado de la cámara que se expone a través de
CameraInfo#getCameraState(). (Ia86b4) - Se agregó la API experimental
CameraInfo#getCameraSelector(), que muestra un elemento CameraSelector único para su cámara. (I77f9f)
Correcciones de errores
- Se solucionó el problema por el que ListenableFuture se mostraba en setZoomRatio y setLinearZoom no podía completarse en algunos dispositivos Android 11. (I716d7)
- Se aceleró el cambio de cámara y se redujo la tasa de error del dispositivo de cámara. (I34c99)
- Se reemplazó ExperimentalUseCaseGroupLifecycle con ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Versión 1.1.0-alpha04
21 de abril de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04 y androidx.camera:camera-lifecycle:1.1.0-alpha04. La versión 1.1.0-alpha04 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una fuga de memoria que causan varios subprocesos que acceden, de manera simultánea, a la misma colección. La fuga de memoria puede causar que el elemento Activity o Fragment sean retenidos por una instancia Preview. (I7b4b8)
- Se reemplazó la anotación
@Experimentalpor@RequiresOptInpara las APIs experimentales. Para llamar a las API experimentales, usaandroidx.annotation.OptInen lugar del elementoandroidx.annotation.experimental.UseExperimentalobsoleto. (Iff226) - Se corrigió el problema por el que ImageCapture con flash encendido o automático tomaba imágenes que perdían el color en el Samsung Galaxy S7. (I30001)
- Se agregó una API de CameraState que se expondrá a través de CameraInfo. (I75392)
Versión 1.1.0-alpha03
24 de marzo de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha03, androidx.camera:camera-core:1.1.0-alpha03 y androidx.camera:camera-lifecycle:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.
Correcciones de errores
- Se agregó el formato de salida JPEG para
ImageCapture#OnImageCapturedCallbackcuando los modos de extensiones están habilitados. (I0d7b1) - Se corrigió el error de inicialización en dispositivos UMIDIGI BISON. (I57d9e, b/180818665)
- Se corrigió la vista previa extendida de Samsung A3 en PreviewView. (Iacb30, b/180121821)
Versión 1.1.0-alpha02
24 de febrero de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02 y androidx.camera:camera-lifecycle:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se agregó la API de
ProcessCameraProvider.getAvailableCameraInfos()para recuperar de forma directa información sobre las cámaras disponibles, que pueden ser todas las cámaras del dispositivo o las que seleccionó elCameraSelectorincluido enCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)
Correcciones de errores
- Ahora, CameraX intenta forzar la apertura de la cámara en el primer intento, por lo que es posible que CameraX anule la cámara de otros clientes si la app tiene una prioridad más alta. (Iab069, b/175820568)
- Se corrigió el error en la prueba de Robolectric cuando se usa setAvailableCamerasLimiter en CameraXConfig. (Ice307)
- Este cambio detecta la excepción cuando la cola de imagen alcanza su límite en ImageAnalysis, por lo que es posible que otros casos de uso, como la vista previa, se bloqueen o funcionen con lentitud en lugar de generarse una falla. (Ic12da, b/175851631)
- Se corrigió ExtensionsErrorListener para que informe errores cuando solo Preview o ImageCapture están vinculados. (I5ae39)
- Se corrigió la regresión de rendimiento de ImageCapture, ya que se quitó la validación de la ubicación de las imágenes guardadas antes de tomar la foto. Después de realizar este cambio, si el destino de almacenamiento no es válido, tardará más tiempo en obtener la respuesta de error porque intentará guardar la imagen luego de tomar la foto. (I1fd4e, b/177061560)
- Se corrigió la regresión de rendimiento de ImageCapture con el tipo "File" de OutputFileOptions. (I5164a, b/177061560)
- Se actualizó la documentación a fin de evitar el uso de
ProcessCameraProvider.configureInstance(...)desde el código de biblioteca. (Ib8a9f)
Versión 1.1.0-alpha01
27 de enero de 2021
Lanzamiento de androidx.camera:camera-camera2:1.1.0-alpha01, androidx.camera:camera-core:1.1.0-alpha01 y androidx.camera:camera-lifecycle:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se incluye una solución alternativa para los datos de imagen corruptos de forma intermitente en JPEG en la cámara trasera del SM-G930T. (I52001, b/159831206)
- Se corrigió el error
IllegalArgumentExceptionque se producía cuando todos los tamaños admitidos de vista previa eran inferiores a 640 x 480 y el tamaño de la pantalla era superior a 640 x 480. (I2a63c, b/150506192) - De forma predeterminada, los recursos de las bibliotecas sin recursos públicos declarados de manera explícita (p. ej., a través de public.xml) son privados. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core y Camera-Lifecycle Versión 1.0.2
Versión 1.0.2
29 de septiembre de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 y androidx.camera:camera-lifecycle:1.0.2. La versión 1.0.2 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó el problema en el que se desenfocaban las fotos que se capturaban en el modo
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Se solucionó un problema en el que la imagen que se capturaba con flash era oscura en muchos dispositivos. (I4e510)
Camera-Camera2, Camera-Core y Camera-Lifecycle Versión 1.0.1
Versión 1.0.1
21 de julio de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1 y androidx.camera:camera-lifecycle:1.0.1. La versión 1.0.1 contiene estas confirmaciones.
Correcciones de errores
Se corrigió el problema por el que el objeto
ListenableFutureque se mostraba ensetZoomRatioysetLinearZoomno se podía completar en algunos dispositivos Android 11. (I716d7)Se solucionó el problema por el que la cámara se atascaba al cerrar el estado de la cámara en algunos dispositivos y causaba una vista previa en negro. (I34c99)
Camera-Camera2, Camera-Core y Camera-Lifecycle Versión 1.0.0
Versión 1.0.0
5 de mayo de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 y androidx.camera:camera-lifecycle:1.0.0. La versión 1.0.0 contiene estas confirmaciones.
Funciones principales de la versión 1.0.0
- CameraX admite Vista previa, ImageCapture y Análisis.
- CameraX administra el ciclo de vida de la cámara en una API fácil de usar.
- CameraX tiene como objetivo proporcionar una capa de compatibilidad que solucione muchos problemas en el ecosistema de las cámaras de Android.
Errores conocidos
- Consulta la Lista de errores conocidos
Versión 1.0.0-rc05
21 de abril de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.0-rc05, androidx.camera:camera-core:1.0.0-rc05 y androidx.camera:camera-lifecycle:1.0.0-rc05. La versión 1.0.0-rc05 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el problema por el que ImageCapture con flash encendido o automático tomaba imágenes que perdían el color en el Samsung Galaxy S7. (I30001)
Versión 1.0.0-rc04
24 de marzo de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04 y androidx.camera:camera-lifecycle:1.0.0-rc04. La versión 1.0.0-rc04 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error de inicialización en dispositivos UMIDIGI BISON. (I57d9e, b/180818665)
Versión 1.0.0-rc03
24 de febrero de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.0-rc03, androidx.camera:camera-core:1.0.0-rc03 y androidx.camera:camera-lifecycle:1.0.0-rc03. La versión 1.0.0-rc03 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error de formato en el documento de
ProcessCameraProvider#getInstance - Se corrigió el error en la prueba de Robolectric cuando se usa setAvailableCamerasLimiter en CameraXConfig.
- Se corrigió la regresión de rendimiento de ImageCapture, ya que se quitó la validación de la ubicación de las imágenes guardadas antes de tomar la foto. Después de realizar este cambio, si el destino de almacenamiento no es válido, tardará más tiempo en obtener la respuesta de error porque intentará guardar la imagen luego de tomar la foto.
- Este cambio detecta la excepción cuando la cola de imagen alcanza su límite en ImageAnalysis, por lo que es posible que otros casos de uso, como la vista previa, se bloqueen o funcionen con lentitud en lugar de generarse una falla.
- Se incluye una solución alternativa para los datos de imagen corruptos de forma intermitente en JPEG en la cámara trasera del SM-G930T. (I52001, b/159831206)
- Este cambio detecta la excepción cuando la cola de imagen alcanza su límite en ImageAnalysis, por lo que es posible que otros casos de uso, como la vista previa, se bloqueen o funcionen con lentitud en lugar de generarse una falla. (Ic12da, b/175851631)
- Se corrigió el error en la prueba de Robolectric cuando se usa setAvailableCamerasLimiter en CameraXConfig. (Ice307)
- Se corrigió la regresión de rendimiento de ImageCapture, ya que se quitó la validación de la ubicación de las imágenes guardadas antes de tomar la foto. Después de realizar este cambio, si el destino de almacenamiento no es válido, tardará más tiempo en obtener la respuesta de error porque intentará guardar la imagen luego de tomar la foto. (I1fd4e, b/177061560)
- Se corrigió la regresión de rendimiento de ImageCapture con el tipo "File" de OutputFileOptions. (I5164a, b/177061560)
Versión 1.0.0-rc02
27 de enero de 2021
Lanzamiento de androidx.camera:camera-camera2:1.0.0-rc02, androidx.camera:camera-core:1.0.0-rc02 y androidx.camera:camera-lifecycle:1.0.0-rc02. La versión 1.0.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error IllegalArgumentException que se producía cuando todos los tamaños admitidos de vista previa eran inferiores a 640 x 480 y el tamaño de la pantalla era superior a 640 x 480. (b/150506192)
Se limita la cantidad de intentos para que se vuelva a abrir la cámara. Cuando intente recuperarse de ciertos problemas al abrir la cámara, CameraX ya no probará con reabrir la cámara indefinidamente, sino que se detendrá después de reintentar durante 10 segundos. I435d2
Se corrigió el error
IllegalArgumentExceptionque se producía cuando todos los tamaños admitidos de vista previa eran inferiores a 640 x 480 y el tamaño de la pantalla era superior a 640 x 480. (I2a63c, b/150506192)
Versión 1.0.0-rc01
16 de diciembre de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 y androidx.camera:camera-lifecycle:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.
Cambios en la API
- Se cambiaron CameraFilter y Camera2Filter para que acepten CameraInfo. (I6883d)
- Se agregó la clase experimental Camera2CameraControl para permitir la interoperación con API de Camera2 de manera dinámica. (I45cf3)
- Se cambió el nombre de Camera2CameraInfo#fromCameraInfo a #from. (Ia2bd6)
- Se agregó una API experimental de setAvailableCamerasLimiter a CameraXConfig para permitir que las apps optimicen la latencia de inicialización evitando inicializar cámaras en desuso. (I6cf88)
- Se agregó el método experimental
CameraXConfig.Builder#setMinimumLoggingLevel()a fin de permitir que se establezca un nivel de registro mínimo para los registros de CameraX. Si no se establece, el valor predeterminado esLog#DEBUG. (Ic3245)
Correcciones de errores
- Se incluye una solución alternativa para los datos de imagen corruptos de forma intermitente en JPEG en la cámara trasera del SM-G930V. (I5aca5, b/159831206)
- Se solucionó el problema por el cual en los dispositivos Samsung SM-A716, al momento de tomar fotos, no se obtenían resultados cuando el flash estaba siempre activado y el ambiente era oscuro. (If98b2, b/172036589)
- Se corrigió el problema por el que no se podía detener el objeto Preview llamando a
Preview.setSurfaceProvider(null). (I3ac18) - Se corrigió un problema de orientación que se generaba al momento de capturar imágenes 4:3 en algunos dispositivos. (I0e3fb, b/171492111)
Camera Camera2, Core y Lifecycle versión 1.0.0-beta12
11 de noviembre de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12 y androidx.camera:camera-lifecycle:1.0.0-beta12. La versión 1.0.0-beta12 contiene estas confirmaciones.
Correcciones de errores
- Se inhabilitó el flash automático en dispositivos Samsung A3 para corregir la falla que se producía cuando se tomaba una foto con el modo AE de flash automático. (Ia5fe3, b/157535165)
- Se solucionó un problema por el que la vista previa se mostraba expandida en dispositivos Nexus 4 con Android L (niveles de API 21 y 22). (I4d407, b/158749159)
- La implementación de la clase base
OnImageCapturedCallback#onCaptureSuccessya no cierra la imagen. Eso sucede con el fin de evitar comportamientos inesperados para los desarrolladores. Los desarrolladores no deben depender de super.onCaptureSuccess para cerrar la imagen. (Ifbf9c). - La variante de androidx de la anotación Experimental dejó de estar disponible para proporcionar paridad con Kotlin. Se reemplazó por la anotación RequiresOptIn, y se actualizó el linter orientado a Java para brindar compatibilidad con la nueva anotación de Kotlin y la nueva variante androidx. (I52495, b/151331381)
Camera-Camera2 versión 1.0.0-beta11
14 de octubre de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta11. La versión 1.0.0-beta11 contiene estas confirmaciones.
Nuevas funciones
- Admite la API de
CONTROL_ZOOM_RATIOde Android 11 para acercar en dispositivos con Android 11 o versiones posteriores que contienenCONTROL_ZOOM_RATIO_RANGEválidos. (I62cc6)
Correcciones de errores
- Se solucionó el problema de NumberFormatException que se producía cuando el objeto ID de la cámara era un ID de cámara no entero. (Ib2228)
- Se mejoró la latencia de la inicialización de CameraX y bindToLifecycle. (I61dc5)
- Crear UseCases no requiere que se complete la inicialización de CameraX. Todas las configuraciones específicas de implementaciones se establecen en UseCase una vez que se adjunta a una instancia de Camera, que para la API pública es
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()mostraráSurface.ROTATION_0si se lo llama antes de que se conecte a una instancia de Camera, a menos que se haya establecido una targetRotation en el Builder o el UseCase. (I80fcd)
Camera-Core versión 1.0.0-beta11
14 de octubre de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta11. La versión 1.0.0-beta11 contiene estas confirmaciones.
Nuevas funciones: Se admite la API de CONTROL_ZOOM_RATIO de Android 11 para acercar en dispositivos con Android 11 o versiones posteriores que contienen CONTROL_ZOOM_RATIO_RANGE válidos. (I62cc6)
Correcciones de errores
- Se solucionó el problema de NumberFormatException que se producía cuando el objeto ID de la cámara era un ID de cámara no entero. (Ib2228)
- Crear UseCases no requiere que se complete la inicialización de CameraX. Todas las configuraciones específicas de implementaciones se establecen en UseCase una vez que se adjunta a una instancia de Camera, que para la API pública es
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()mostraráSurface.ROTATION_0si se lo llama antes de que se conecte a una instancia de Camera, a menos que se haya establecido una targetRotation en el Builder o el UseCase. (I80fcd)
Camera-Core versión 1.0.0-beta10
23 de septiembre de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta10. La versión 1.0.0-beta10 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error relacionado con la validación del destino de almacenamiento de archivos para la captura de imágenes (I8c565, b/167697553).
Camera-Camera2 versión 1.0.0-beta10
23 de septiembre de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta10. La versión 1.0.0-beta10 contiene estas confirmaciones.
Correcciones de errores
- Lanzamiento de la versión para admitir Camera-Core versión 1.0.0-beta10.
Camera-Camera2 versión 1.0.0-beta09
16 de septiembre de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta09. La versión 1.0.0-beta09 contiene estas confirmaciones.
Cambios en la API
- En lugar de proporcionar métodos estáticos, Camera2CameraInfo toma una instancia de CameraInfo cuando se crea a fin de recuperar información relacionada de Camera2. (I5b844)
Correcciones de errores
- Se solucionó el problema de relación de aspecto de destino en tablets. Se deberá seleccionar un tamaño de proporción 16:9 cuando la relación de aspecto de destino sea
AspectRatio.RATIO_16_9. (Ib7fcf, b/151969438) - Se arroja una
InitializationExceptionde modo que la app pueda controlar correctamente el AssertionError que ocurre durante la creación de CameraCharacteristics. (I89c8c, b/160524721) - Se agregaron interfaces experimentales para ExposureCompensation. (If96c7)
Camera-Core versión 1.0.0-beta09
16 de septiembre de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta09. La versión 1.0.0-beta09 contiene estas confirmaciones.
Cambios en la API
- Se corrigió el error por el que viewport se marcaba como no nula en UseCaseGroup. Los desarrolladores deberían poder crear una viewport sin configurarla. (Ie3d2e)
- Se agregaron interfaces experimentales para
ExposureCompensation. (If96c7) - Se permite la rotación de destino arbitraria en Vista previa. La información de transformación se calcula y se muestra al usuario en el momento mediante una devolución de llamada
TranformationInfoListenernueva. (I21470)
Correcciones de errores
- Se solucionó el problema por el que no se desactivaba el flash en algunos dispositivos. Esto ocurre cuando el modo de flash está configurado como
FLASH_MODE_ONpara tomar una foto y se cambia aFLASH_MODE_OFFcuando se activa el flash. El síntoma se asemeja a cuando el modo de linterna está habilitado. (Ib4451, b/162568128) - Se forzó PreviewView a usar TextureView si el efecto de extensión está habilitado y la implementación de la biblioteca del proveedor debe realizar un proceso especial en la superficie de salida. (I0c3cc)
- Se corrigió la pérdida en actividades o fragmentos que ocurre cuando se pasa un contexto de estos a
ProcessCameraProvider.getInstance(Context).
Errores conocidos
- Cuando se establece ViewPort, el rectángulo de recorte de ImageCapture podría ser incorrecto en dispositivos que rotan el búfer de imágenes en HAL. Se solucionará este problema en la próxima versión.
Camera-Camera2 versión 1.0.0-beta08
19 de agosto de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta08. La versión 1.0.0-beta08 contiene estas confirmaciones.
Correcciones de errores
- Se optimizó bindToLifecycle para que se ejecute rápidamente en el subproceso principal. (I1d57e)
- DisplayOrientedMeteringPointFactory toma una instancia de CameraInfo en lugar de CameraSelector, de modo que haya un mapeo directo con el objeto Camera para el cual la fábrica generará puntos. Todas las clases que usan DisplayOrientedMeteringPointFactory también toman una instancia de CameraInfo en lugar de CameraSelector. (I400c1)
- Se corrigió el error de agrupación por tamaño relacionado con la resolución automática de la relación de aspecto por el cual se seleccionaba un tamaño de dimensiones mod16 de proporción 16:9 (864 x 480) cuando la configuración de resolución objetivo era de 2016 x 1080 y se admitía otro tamaño de 1920 x 1080. (I53167, b/159363774)
- Se corrigió una condición de carrera en CameraControl que impedía su funcionamiento. (I2279f, b/152333890, b/160714166)
Camera-Core versión 1.0.0-beta08
19 de agosto de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta08. La versión 1.0.0-beta08 contiene estas confirmaciones.
Cambios en la API
DisplayOrientedMeteringPointFactorytoma una instancia deCameraInfoen lugar deCameraSelector, de modo que haya un mapeo directo con el objeto Camera para el que la fábrica generará puntos. Todas las clases que usanDisplayOrientedMeteringPointFactorytambién toman una instancia deCameraInfoen lugar deCameraSelector. (I400c1)
Correcciones de errores
- Para la captura de imágenes, se reemplazó la marca horizontal de giro en los metadatos según la dirección de la cámara. (I28499)
- La inicialización ya no debería fallar cuando se usa un objeto Context que no muestra un objeto Application de
Context.getApplicationContext(). (I3d3c9, b/160817073)
Camera-Camera2 versión 1.0.0-beta07
22 de julio de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta07. La versión 1.0.0-beta07 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el error por el que la vista previa se mostraba expandida en dispositivos heredados con Android 5.0. (I0c03a)
- Se excluyeron algunos tamaños admitidos de JPEG que causan problemas de WYSIWYG en algunos dispositivos. (Ib5128)
Camera-Core versión 1.0.0-beta07
22 de julio de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta07. La versión 1.0.0-beta07 contiene estas confirmaciones.
Cambios en la API
- Fusiona el estilo de ajuste de
FIT_CENTER,FIT_STARTyFIT_ENDconFIT.FITsignifica que el recorte que se muestre será el máximo posible para el sensor. (Ia73c3) - Viewport configura la vista previa del recorte. Los usuarios finales deberían poder ver solo el área cubierta por el rectángulo de recorte. (I142a4)
Correcciones de errores
- Se corrigió el error por el que la vista previa se mostraba expandida en dispositivos heredados con Android 5.0. (I0c03a)
- Se corrigió el error de excepción
ConcurrentModificationExceptionque ocurre cuando se desvinculan los casos de uso. (I371c0)
Camera-Camera2 versión 1.0.0-beta06
24 de junio de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta06. La versión 1.0.0-beta06 contiene estas confirmaciones.
Cambios en la API
- Se agregaron interfaces experimentales para filtrar cámaras según el ID de la cámara y CameraCharacteristics. (I28f61).
Correcciones de errores
- Se solucionó el problema por el que startFocusAndMetering no se enfocaba correctamente en Samsung Galaxy S7. (If3be7 y b/159039233).
- Se corrigió el problema por el que la cámara no se podía cerrar después de salir de la app. (I7a7b3)
- Se corrigió el problema por el que el cambio reiterado de cámaras generaba errores de vista previa cuando se usaba la implementación SurfaceView de PreviewView. (I920ce)
CameraControl#startFocusAndMeteringfallará si ninguno de los elementos MeteringPoint especificados pueden generar rectángulos válidos de medición. (Id53ce).
Camera-Core versión 1.0.0-beta06
24 de junio de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta06. La versión 1.0.0-beta06 contiene estas confirmaciones.
Cambios en la API
- Se agregaron interfaces experimentales para filtrar cámaras según el ID de la cámara y CameraCharacteristics. (I28f61).
Correcciones de errores
- Ahora, CameraX se puede configurar con
ProcessCameraProvider#configureInstance()antes de llamar aProcessCameraProvider#getInstance(). Esto permite la personalización deCameraXConfigsin necesidad de implementarCameraXConfig.Provideren la clase Application de la app. (Ia1a8d) CameraControl#startFocusAndMeteringfallará si ninguno de los elementos MeteringPoint especificados pueden generar rectángulos válidos de medición. (Id53ce).
Camera-Camera2 versión 1.0.0-beta05
10 de junio de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta05. La versión 1.0.0-beta05 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la falla de inicio de la app que se producía cuando se inicializaba CameraX mientras el teléfono estaba en modo No interrumpir. Una
InitializationExceptioncontiene unaCameraUnavailableExceptionque se configurará comoListenableFuturedel resultado de la inicialización en lugar de hacer fallar la aplicación. (I9909a, b/149413835) - Se corrigió la falla que se producía cuando se llamaba a
startFocusAndMeteringen dispositivos en los queCONTROL_AF_STATEera nulo. (Ife55e, b/157084254)
Camera-Core versión 1.0.0-beta05
10 de junio de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta05. La versión 1.0.0-beta05 contiene estas confirmaciones.
Cambios en la API
- Se corrigió la falla de inicio de la app que se producía cuando se inicializaba CameraX mientras el teléfono estaba en modo No interrumpir. Una
InitializationExceptioncontiene unaCameraUnavailableExceptionque se configurará comoListenableFuturedel resultado de la inicialización en lugar de hacer fallar la aplicación. (I9909a, b/149413835)
Correcciones de errores
- Se actualizaron los javadocs de
setTargetResolutionysetTargetRotation. (Iae16f)
Camera-Camera2 versión 1.0.0-beta04
27 de mayo de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta04. La versión 1.0.0-beta04 contiene estas confirmaciones.
Correcciones de errores
- Se permitió a las aplicaciones establecer cualquier parámetro de solicitud de captura de camera2 a través de
Camera2Interopsin causar una falla. Ten en cuenta que pueden surgir problemas como resultado de la anulación de parámetros. No se garantiza la estabilidad y el comportamiento cuando se anulan parámetros usando Camera2Interop. (Ibe5a1, b/149103700) - Se soluciona la inicialización automática cuando se usa una app en un dispositivo que utiliza una pseudoconfiguración regional. (I3bef3, b/154767663)
- Se convirtió el registro de errores relacionado con el caso práctico desconectado en un registro de depuración en Camera2CameraImpl. (I1a565, b/154422490)
- Se solucionó el problema por el que se tomaban imágenes demasiado oscuras a pesar de que se activaba el flash. (I5d9fa, b/149729613)
- Se corrigió el error por el que no se retrocedía el búfer en
ImageProxydeImageCapture. (I0c455, b/153249512) - Se solucionaron los problemas relacionados con la vinculación de solo ImageCapture: (1) no se podían tomar fotos con MAX_QUALITY; (2) se generaba una mala calidad de imagen porque la exposición automática no funcionaba. (I17782, b/145326998)
- Se mejoró la fiabilidad de la reapertura de la cámara cuando otro proceso o ruta de código desconectaba CameraX y anulaba la cámara. (I1fbc3, b/153714651)
Camera-Core versión 1.0.0-beta04
27 de mayo de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta04. La versión 1.0.0-beta04 contiene estas confirmaciones.
Cambios en la API
- Agrega una API experimental,
CameraXConfig.Builder#setSchedulerHandler(), para configurar el controlador que usa internamente la pila de la cámara CameraX. Esta nueva API, junto conCameraXConfig.Builder#setCameraExecutor(), debería permitir el control total de los subprocesos que usa la pila de la cámara CameraX. (I7bf32, b/121160431)
Correcciones de errores
- Se corrigió una falla en
ImageAnalysispor la que se accedía aImageProxydespués de que se cerraba elImageReaderProxy. Así, todos los elementosImageProxyrecibidos porAnalyzerse deben cerrar antes de que se cierre elImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269) - Se quitó el parámetro
CameraInfodePreviewView#createSurfaceProvider(); ahora,PreviewViewlo recupera internamente desde laSurfaceRequest. (If18f0, b/154652477) - Se soluciona la inicialización automática cuando se usa una app en un dispositivo que utiliza una pseudoconfiguración regional. (I3bef3, b/154767663)
- Se solucionó el problema por el que se tomaban imágenes demasiado oscuras a pesar de que se activaba el flash. (I5d9fa, b/149729613)
- Se solucionó el problema relacionado con
ImageAnalysispor el que, cuando se hacían varias llamadas a setAnalyzer/clearAnalyzer, el analizador no recibía imágenes para analizar. (I6169f, b/151605317, b/153514544) - Se corrigió el error por el que no se retrocedía el búfer en
ImageProxydeImageCapture. (I0c455, b/153249512) - Se solucionó el problema por el que no siempre se seleccionaba para usar la primera cámara de la lista de dispositivos compatibles de
CameraManager. (I4c624, b/153418028) - Se corrigió la falla intermitente que se generaba cuando se configuraba
Preview.SurfaceProviderpara no liberar la superficie solicitada anteriormente.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”(I8e4e7, b/155936225)
Camera-Camera2 versión 1.0.0-beta03
15 de abril de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta03. La versión 1.0.0-beta03 contiene estas confirmaciones.
Correcciones de errores
- Se realizaron correcciones para admitir el lanzamiento de
camera-core.
Camera-Core versión 1.0.0-beta03
15 de abril de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta03. La versión 1.0.0-beta03 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la regresión de beta03 por la que, cuando se llamaba a
bindToLifecycle()sin un soloUseCase, se generaba una excepción. Esto evitó que se recuperara una instancia deCamerasin vincular unUseCase.
Camera-Camera2 versión 1.0.0-beta02
1 de abril de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el valor de
ImageInfo.getRotationDegrees()deImageProxyproducido porImageCapturea fin de que coincida con el valor de rotación de la orientación de EXIF. (Id4281, b/150802561). - Ya no se requiere el orden explícito de las dependencias de CameraX en
build.gradlepara usar la implementación de CameraX/Camera2 predeterminada. En los casos en los que se requiera declarar dependencias estrictas, ahora se podrán incluir todas las dependencias de CameraX en el archivo de compilación (I46e88). - Se solucionó el problema relacionado con
IllegalArgumentExceptionque se producía en los dispositivos en los que el tamaño de la pantalla es inferior a 640 x 480. (Ife3f2, b/150506192). - Se corrigió
bindToLifecyclepara que solo modifique el UseCase si se vincula correctamente. Antes, cuando se llamaba abindToLifecyclepara realizar cálculos de resolución, se actualizaba el UseCase. Ahora ya no es necesario actualizar el UseCase para realizar los cálculos (I78d9e).
Camera-Core versión 1.0.0-beta02
1 de abril de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió el valor de
ImageInfo.getRotationDegrees()deImageProxyproducido porImageCapturea fin de que coincida con el valor de rotación de la orientación de EXIF. (Id4281, b/150802561). - Se corrigió
bindToLifecyclepara que solo modifique el UseCase si se vincula correctamente. Antes, cuando se llamaba abindToLifecyclepara realizar cálculos de resolución, se actualizaba el UseCase. Ahora ya no es necesario actualizar el UseCase para realizar los cálculos (I78d9e). - Se solucionó un problema por el que la sesión de captura del caso práctico de
Previewno se actualizaba cuando la superficie de vista previa cambiaba después de que se llamaba aPreview.setSurfaceProvider()más de una vez.
Camera-Camera2 versión 1.0.0-beta01
26 de febrero de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se cambió el nombre de
SurfaceRequest.setSurface(Surface)porSurfaceRequest.provideSurface(Surface)y el deSurfaceRequest.setWillNotComplete()porSurfaceRequest.willNotProvideSurface(). (I224fe) - Se solucionó un problema por el que la relación de aspecto de una imagen guardada no era correcta después de cambiar el valor de rotación de destino usando
ImageCapture.setTargetRotation(). (I474ea, b/148763432) - Se corrigió la inicialización de las variantes de apps con ProGuard habilitado conservando la marca que establece el proveedor
CameraXConfigpredeterminado. (I2d6c1)
Camera-Core versión 1.0.0-beta01
26 de febrero de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se reemplazó el elemento
ListenableFuturedeSurfaceRequest.provideSurface()por unExecutory unaCallback. Esto simplifica la API porque no se requiere el manejo de excepciones enprovideSurface()y no se pueda cancelar la devolución de llamada aprovideSurface(). De esta forma, se evitan fallas en dispositivos más antiguos causadas por el lanzamiento de superficies de forma anticipada. Ahora se usa el objetoSurfaceRequest.Resultpara realizar un seguimiento de cómo unaSurfaceRequestutiliza laSurfaceproporcionada (I7854b). - Se cambió el nombre de
SurfaceRequest.setSurface(Surface)porSurfaceRequest.provideSurface(Surface)y el deSurfaceRequest.setWillNotComplete()porSurfaceRequest.willNotProvideSurface(). (I224fe)
Correcciones de errores
- Se solucionó un problema por el que la relación de aspecto de una imagen guardada no era correcta después de cambiar el valor de rotación de destino usando
ImageCapture.setTargetRotation(). (I474ea, b/148763432) - Se corrigió la inicialización de las variantes de apps con ProGuard habilitado conservando la marca que establece el proveedor
CameraXConfigpredeterminado. (I2d6c1) - Se actualizó la documentación de las API del modo de flash para incluir valores posibles. (I4a3ec)
Camera-Camera2 versión 1.0.0-alpha10
10 de febrero de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Correcciones de errores
- Se mejoró la estabilidad de los dispositivos
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY. Para ello, se garantizó que los elementos deSurfacesolo se retengan durante el uso de Camera2. (I9dac2) - Se ajustó correctamente
CONTROL_AE_TARGET_FPS_RANGEa fin de corregir el problema relacionado con la vista previa subexpuesta en dispositivos HEREDADOS. (1224638)
Camera-Core versión 1.0.0-alpha10
10 de febrero de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Cambios en la API
- Se actualizó
ImageCapturepara permitir que se guarden imágenes enUriyOutputStream. Se combinaron los métodostakePicturesobrecargados en uno solo. Se actualizó la app de prueba para usarUricomo ejemplo canónico. (Ia3bec) - Se cambió el nombre de
Preview.PreviewSurfaceProviderporPreview.SurfaceProvider. LosSurfaceProviderya no requieren que los desarrolladores creen su propioListenableFuturey ahora se proporciona laSurfacea través de un objetoSurfaceRequestnuevo. Se quitó el métodoPreview.getPreviewSurfaceProvider()debido a su potencial de uso inadecuado cuandoPreviewse sincroniza con otras clases, comoPreviewView(I20105). - Se agregaron
getTargetRotation()ygetTargetName()aPreview. (Iceee7) - Se agregaron
getTargetRotation(),getBackpressureStrategy()ygetImageQueueDepth()enImageAnalysis. (I9d6d9) - Se agregaron
getTargetRotation()ygetCaptureMode()enImageCapture(). (I5bc17) - Los argumentos que antes se pasaban en
ImageCapture.OnImageSavedCallback.onError()yImageCapture.OnImageCapturedCallback.onError()ahora se reemplazaron por un solo argumentoImageCaptureException, que aún contiene toda la información que se pasó anteriormente. - Se quitó el argumento del archivo que antes se pasaba en
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - Ahora se marcan las clases
PreviewyImageCapturecomo finales. (I2500b) - Se actualizó la API y se combinaron los métodos
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()ygetLinearZoom()deCameraInfoengetZoomState(), que muestra una instancia deZoomState. (Ib19fe) - Se quitaron los campos de API
OPTION_TARGET_CLASSyOPTION_TARGET_NAMEdeCameraXConfig, ya que están destinados solo para uso interno de bibliotecas. Se quitó el constructor deCameraXConfig.Builder(I96912). - Se quitó el requisito por el que la app debía extender
Applicationa fin de inicializar CameraX. Ahora, se inicializará CameraX con una configuración predeterminada de Camera2, siempre que se incluya el artefactocamera-camera2en el objetobuild.gradlede la aplicación (I58ff5) (b/146923574).
Camera-Camera2 versión 1.0.0-alpha09
22 de enero de 2020
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Cambios en la API
Agrega la ruta de acceso de interoperabilidad de camera2 para extraer un ID de cámara Camera2. Puedes extraer el ID de la cámara de
CameraInfousandoCamera2CameraInfo.extractCameraId(). En la siguiente muestra de código, se explica cómo usarlo:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());La clase
Camera2CameraInforequiere la markerClassExperimentalCamera2Interop.
Camera-Core versión 1.0.0-alpha09
22 de enero de 2020
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre del parámetro
useCaseForSurfacedeSurfaceOrientedMeteringPointFactoryporuseCaseForAspectRatioy se amplió la documentación de referencia. - Los constructores
FocusMeteringAction.Builder()reemplazan a los métodosFocusMeteringAction.Builder.from(). - Se quitó
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Las aplicaciones deben usar el constructor que toma un parámetroDisplayy pasar la pantalla actual. - Se implementaron mejoras en Javadoc para las API de enfoque y medición en relación con las marcas
MeteringModey 3A, y el uso del parámetroDisplay. - Se amplió la documentación de referencia para
setZoomRatioysetLinearZoom.
Correcciones de errores
- Se solucionaron problemas que ocurrían al cerrar y, luego, abrir cámaras, lo que provocaba un error de comprobación de "condición previa".
- Se corrigió un
ConcurrentModificationExceptionque se producía al usar las API de linterna y zoom. - Se solucionó un problema para poder seleccionar resoluciones más cercanas a las solicitadas cuando está disponible un tamaño de dimensiones mod16.
- Las API de
startFocusMeteringycancelFocusMeteringahora se comportan como se indica: con los tiempos correctos y mostrando, posiblemente, errores cuando se producen. - Se solucionó un problema por el que se solicitaba una resolución de objetivo determinada con una relación de aspecto de recorte en un dispositivo que no admite esos tamaños. Ahora, se selecciona un tamaño no recortado de resolución suficiente que se adecúe a la solicitud original cuando está disponible.
Camera-Camera2 versión 1.0.0-alpha08
18 de diciembre de 2019
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Errores conocidos
- No todas las opciones para la solicitud de captura de Camera2 funcionan cuando se usa la interoperabilidad de Camera2. Si no se admite la opción solicitada, no se inicia la sesión y se produce un error como este:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination.
Correcciones de errores
- Se solucionó un problema por el que se mostraba una pantalla negra como vista previa después de rotar o cambiar la cámara para las API nivel 21 y 22.
Cambios en la API
- Experimental: Se agregó una ruta de acceso de interoperabilidad de camera2 para extraer el ID de la cámara.
Camera-Core versión 1.0.0-alpha08
18 de diciembre de 2019
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Errores conocidos
- Las apps que usan
PreviewViewoCameraViewpueden tener una vista previa de relación de aspecto incorrecta. Esto ocurre después de pausar o reanudar contenido en algunos dispositivos FULL, como el Pixel 2.
Correcciones de errores
- Se actualizó la documentación de
FocusMeteringActionyCameraControl. - Se implementó
TorchControlparaenableTorch()ygetTorchState().
Cambios en la API
- Se ocultó IntDefs y se quitaron las constantes de IntDef de su definición.
- Se movió
rotationDegreesde la claseOnImageCaptureCallbackaImageInfo. - Se movió
rotationDegreesde la claseAnalyzeraImageInfo.
Camera-Camera2 versión 1.0.0-alpha07
4 de diciembre de 2019
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha07. La versión 1.0.0-alpha07 de camera-camera2 contiene estas confirmaciones.
- Ahora se puede usar
Camera2Configcon la inicialización y configuración de una implementación basada en Camera2 para CameraX. Obtén más información sobre cómo usarla durante la inicialización en la sección de Camera-Core de las notas de la versión. - La funcionalidad de interoperabilidad de camera2 ahora está marcada como experimental y se movió a un paquete separado:
androidx.camera.camera2.interop..
Camera-Core versión 1.0.0-alpha07
4 de diciembre de 2019
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha07. La versión 1.0.0-alpha07 de camera-core contiene estas confirmaciones.
Ten en cuenta que existen algunos cambios importantes en esta versión alfa mientras preparamos la beta. Te recomendamos que revises los cambios y compartas tus comentarios con el grupo de Google de CameraX. A los desarrolladores que usan CameraX en apps de Play Store, les recomendamos esperar la versión Beta oficial antes de actualizar la biblioteca de sus aplicaciones.
Cambios en la API
Importante: Cambió la inicialización de CameraX. Las aplicaciones deben implementar
CameraXConfig.Providery usar el objetoCamera2Configpredeterminado que proporcionaandroidx.camera.camera2. El siguiente es un ejemplo de uso típico:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }Se quitó la clase de CameraX. Los elementos
bindToLifecycle(),unbind(),unbindAll(),isBound()yhasCamera()que antes proporcionaba la llamada a la clase de CameraX ahora están disponibles a través deProcessCameraProvider.Se obtiene una instancia por proceso de
ProcessCameraProviderde manera asíncrona con el método estáticoProcessCameraProvider.getInstance(), que muestra un objeto de escucha futuro, que proporciona elProcessCameraProvidercuando se completa el proceso. Aquí se muestra un uso típico enonCreate(). Puedes realizar llamadas agetInstance()más tarde en el ciclo de vida de la actividad para posponer la latencia de inicialización (por ejemplo, cuando una acción del usuario abre una IU de la cámara).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }Se puede agregar un objeto de escucha al
ListenableFutureque muestragetInstance(). De este modo, se garantiza que se pueda recuperar el proveedor de la cámara delFuturesin bloquearFuture.get().cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))Ahora se selecciona la cámara mediante un selector de cámara, en lugar de variar según el caso práctico.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()CameraProvider.bindToLifecyclerecibe el propietario del ciclo de vida, el selector de cámara y los casos prácticos, que luego se vinculan al propietario determinado y se ejecutan para la cámara seleccionada.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)Se quitaron las clases "Config" de caso práctico. En su lugar, se compilan casos prácticos directamente, y se configuran opciones en cada compilador. Por ejemplo:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()Se actualizó el caso práctico de la vista previa para aceptar una superficie creada y administrada por la aplicación a fin de garantizar que se cumplan las prácticas recomendadas de Android. Te recomendamos usar la clase de vista
PreviewViewque se proporciona en el paquete de Camera-View.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)Consulta la documentación sobre cómo adjuntar una superficie administrada por la app. En esos casos, la app administra el ciclo de vida de la superficie.
Importante: La implementación del método analizador
ImageAnalysisdebe llamar aimage.close()en las imágenes recibidas cuando se terminan de usar. De lo contrario, es posible que no se reciban imágenes nuevas o que demore en responder la cámara, según la configuración de contrapresión. Consulta los documentos de referencia para obtener más información.Se cambió
ImageAnalysis ImageReaderModea una estrategia de contrapresiónintdef.Se marcó
ImageProxy.getImage()como experimental. Las aplicaciones deben anotar el uso, por ejemplo, mediante@androidx.camera.core.ExperimentalGetImage.Se quitó el requisito de anotación
UIThreadpara elAnalyzer.Se agregó la función
ImageAnalysis.clearAnalyzer()para quitar un analizador.Se cambió el nombre de los objetos de escucha con más de 1 método por "Callback":
ImageCapture.OnImageCapturedListenerahora esImageCapture.OnImageCapturedCallback.ImageCapture.OnImageSavedListenerahora esImageCapture.OnImageSavedCallback.VideoCapture.OnVideoSavedListenerahora esVideoCapture.OnVideoSavedCallback.
Las Enumeraciones cambiaron a IntDef.
Se agregaron los siguientes controles de zoom:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
Se agregó
CameraInfo.hasFlashUnit()para determinar si el hardware de flash/linterna está presente.Se quitó
CameraInfo.isFlashAvailable(). La linterna anula la funcionalidad del flash. Consulta más detalles en la documentación de referencia.Se reemplazaron los campos
ImageCapture.Metadatapor los métodos de acceso get/set/is.Ahora,
startFocusMeteringycancelFocusMeteringmuestranListenableFutures, que representan la operación asíncrona de la llamada.Los elementos
MeteringPointsahora funcionan como controladores para las acciones de medición, y los producen las fábricas. Las apps deben usar las fábricas existentes en lugar de las personalizadas.
Errores corregidos
- Se solucionó un problema relacionado con la captura de fotos durante una reanudación (luego de una pausa anterior en la que se tomaron fotos antes de que se completara la acción).
- Error conocido:
CameraControl.enableTorch()funciona, pero el objetoListenableFuture<Void>que se muestra siempre es un elementocomplete(success)futuro inmediato, aunque no haya unidades de flash. Este problema se solucionará en las versiones futuras hasta alcanzar el comportamiento final: cuando no haya unidades de flash,enableTorch(true)fallará inmediatamente (no enviará la solicitud aCaptureSession) yTorchStatepermanecerá desactivado. - Error conocido:
startFocusAndMeteringycancelFocusAndMeteringinician y cancelan la medición de foco, pero muestran un elementocompleted (success)futuro inmediato que no representa el comportamiento indicado. El objetoFocusMeteringResultdeListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()es un resultado falso que muestraisFocusSuccessful()y siempre es "falso", lo que difiere del comportamiento previsto y documentado. - Error conocido: Se está desarrollando una fábrica de puntos de medición para usarla con eventos táctiles de
PreviewView. Por el momento, las apps que conectan superficies administradas y personalizadas pueden usar las fábricas de puntos de medición existentes. De lo contrario, no hay funciones de enfoque táctil disponibles paraPreviewView.
Camera-Camera2 y Camera-Core versión 1.0.0-alpha06
9 de octubre de 2019
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha06 y androidx.camera:camera-core:1.0.0-alpha06. Estas son las confirmaciones incluidas en camera-camera2:1.0.0-alpha06, y estas las incluidas en camera-core:1.0.0-alpha06.
Nuevas funciones
Cambios en la configuración de las relaciones de aspecto:
- Se agregó
setTargetAspectRatioMode(), y acepta un argumento de enumeración. Esto establece el modo de relación de aspecto con las opcionesRATIO_4_3oRATIO_16_9, en lugar de una arbitraria. Este acercamiento refleja el hecho de que solo se proporcionan ciertas relaciones de aspecto de la cámara, en lugar de cualquier relación arbitraria.- Actualmente, las únicas relaciones disponibles son 16:9 y 4:3. En el caso de 1:1, solo ciertos dispositivos la tienen disponible desde la cámara, y también solo en resoluciones limitadas. Las aplicaciones que diseñan una interfaz o procesamiento 1:1 deben usar las opciones 16:9 o 4:3 más flexibles, así como recortar la pantalla o procesar una subregión.
- Estas relaciones de aspecto están orientadas para usar el área máxima del sensor.
- Se agregó
getTargetAspectRatio()a las API de configuración de casos prácticos y muestra la relación de aspecto a la que se orienta el resultado del caso. - Se modificó el método
setTargetAspectRatio(Rational aspectRatio)porsetTargetAspectRatioCustom(Rational aspectRatio)para ImageCapture. Cuando se establece el resultado de ImageCapture, este se recorta según corresponda.
API de ejecutor
- Las siguientes funciones aceptan un parámetro ejecutor, que permite a la app controlar en qué ejecutor se ejecuta la función.
- API de
Preview.setOnPreviewOutputUpdateListener(). Si no está presente el ejecutor para esa función, entonces se ejecuta en el subproceso principal. Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
- API de
Se agregó CameraInfo con API de Check Flash Available y Sensor Rotation.
Se agregó
CameraInfoy un métodogetCameraInfo, que permite a las apps verificar si está disponible una lente que apunte a CameraInfo y si hay flash disponible en esa cámara. Por ejemplo:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }Se agregó
CameraInfo.getSensorRotationDegrees(). Proporciona la orientación del sensor de la cámara en relación con la orientación natural del dispositivo, o por conveniencia, en relación con una orientación descrita por una rotación de superficie (que describe una orientación relativa a la orientación natural).
Cambios de API y correcciones de errores
- Relaciones de aspecto: Para cada caso práctico, las aplicaciones deben llamar a una de estas dos opciones:
setTargetResolution()osetTargetAspectRatio(). Si se llama a ambos en el mismo compilador, se muestra un error.- Por lo general, se recomienda usar
setTargetAspectRatio()según el diseño de la IU de la aplicación. Las resoluciones específicas se basan en el caso práctico. Por ejemplo, la vista previa está cerca de las resoluciones de pantalla y la captura de imágenes proporciona imágenes fijas de alta resolución. Para obtener más información, consulta la tabla de resoluciones automáticas. - Usa
setTargetResolution()para casos más específicos, como cuando se requieren resoluciones mínimas (para guardar cálculos) o máximas (para detalles de procesamiento).
- Por lo general, se recomienda usar
- API de ejecutor: Se quitó la llamada a
setCallbackHandler()de las API de configuración de casos prácticos. En cambio, las aplicaciones pueden establecer el ejecutor como un parámetro en varias otras API que establezcan una devolución de llamada. - Se actualizaron las anotaciones nulas de varias funciones.
- Se corrigió un problema que causaba que se arrojara
java.lang.IllegalStateException at Camera$StateCallback.onErroral abrir la cámara. - Se solucionó el problema en el que se seleccionaban resoluciones que eran demasiado pequeñas (menos de 640 x 480) cuando la app solicitaba resoluciones más grandes o predeterminadas que generaban una imagen de vista previa bloqueada o borrosa. Las aplicaciones que necesitan específicamente resoluciones más pequeñas pueden solicitarlas de forma explícita.
- Se solucionó un problema por el cual la cámara mostraba una pantalla negra (no se podía iniciar) después de regresar de un intent que lanzaba otra aplicación de cámara.
- Se corrigió un error que arrojaba
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!cuando se iniciaban o detenían repetidamente algunas apps. - Se corrigió el error
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.que se generaba al inhabilitar ImageAnalysis. - Se agregaron pruebas adicionales para el flujo de desconexión de la cámara.
- Se mejoró la robustez del sistema de pruebas cuando se ejecutan pruebas de cámara consecutivas.
Camera-Camera2 y Camera-Core versión 1.0.0-alpha05
5 de septiembre de 2019
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha05 y androidx.camera:camera-core:1.0.0-alpha05. Estas son las confirmaciones incluidas en camera-camera2:1.0.0-alpha05 y camera-core:1.0.0-alpha05.
Cambio de API: variables de error en casos prácticos con cambios de nombre:
- Se cambió el nombre de
ImageCapture.UseCaseErrorporImageCapture.ImageCaptureError. - Se cambió el nombre de
VideoCapture.UseCaseErrorporVideoCapture.VideoCaptureError.
- Se cambió el nombre de
Se agregó la API de
CameraControlcon la de Tap-to-FocusSe agregó una API a fin de obtener un objeto
CameraControlde CameraX para una cámara, seleccionado por lentes frontales:CameraX.getCameraControl(LensFacing lensFacing)Se agregaron
MeteringPointFactory,MeteringPoint,MeteringModeyFocusMeteringActionpara ejecutar Tap-to-Focus:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();Se agregó una API para
CameraControla fin de iniciar y cancelar la medición de foco:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();Se agregaron API para las fábricas de puntos de medición que ayudan a traducir las coordenadas de presión a las coordenadas del sensor, en función de clases de visualización:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Se fuerza la llamada a los siguientes métodos del subproceso principal (de IU), lo que arroja un
IllegalStateExceptioncuando no están presentes. Las versiones futuras permitirán el uso en otros subprocesos y garantizarán la serialización.CameraX.bindToLifecycle()CameraX.unbind()CameraX.unbindAll()ImageAnalysis.setAnalyzer()ImageAnalysis.getAnalyzer()ImageAnalysis.removeAnalyzer()Preview.removePreviewOutputListener()Preview.getOnPreviewOutputUpdateListener()Preview.setOnPreviewOutputUpdateListener()
Ahora, varios ajustes de configuración aceptan parámetros nulos y los métodos set correspondientes pueden mostrar un valor nulo.
Se solucionó el problema que se generaba cuando se probaban emuladores que no eran compatibles con la configuración de AF/AE/AWB.
Se corrigió un error de bloqueo en la rotación mientras se analizaba la imagen.
Se corrigió un error en el que la vista previa se veía negra al inicio (sin datos de la cámara), después de la rotación o al alternar entre las cámaras frontal y posterior.
Se quitaron las pruebas de varios casos prácticos de análisis simultáneos de imágenes. Para garantizar la compatibilidad, las aplicaciones solo deben adjuntar un único caso práctico de análisis de imágenes.
Se agregaron pruebas roboeléctricas iniciales para cámaras falsas en el conjunto de pruebas de cámara (WIP).
Se quitó la prueba Camera2Inititalizer, ya que su cobertura era confusa o engañosa.
Camera-Camera2 y Camera-Core versión 1.0.0-alpha04
7 de agosto de 2019
Lanzamiento de androidx.camera:camera-camera2:1.0.0-alpha04 y androidx.camera:camera-core:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
Cambios en la selección de relación de aspecto y resolución
El objetivo de CameraX es inicializar con éxito una sesión de la cámara. Esto significa que CameraX ajusta las relaciones de resolución y aspecto en función de la capacidad del dispositivo, a fin de iniciar una sesión de captura como su primer objetivo, por lo que es posible que no se cumplan las solicitudes exactas. Esto puede deberse a lo siguiente:
- Dispositivos que no admiten la resolución solicitada
- Problemas de compatibilidad, como en dispositivos HEREDADOS donde se deben usar ciertas resoluciones para que funcionen correctamente
- En algunos dispositivos, ciertos formatos solo están disponibles en algunas relaciones de aspecto
- Preferencia por un "mod16 más cercano" para JPEG o codificación de video Consulta
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP.
Aunque CameraX crea y administra la sesión, siempre debes verificar en el código los tamaños de imagen que se muestran en los resultados del caso práctico y ajustarlos en consecuencia.
Se realizaron algunos cambios para establecer resoluciones y relaciones de aspecto, con el objetivo de que la API sea más clara:
- Ahora se considera que el caso práctico de vista previa tiene una relación de aspecto predeterminada de 4:3 cuando no se establece ninguna.
- Cuando CameraX considera internamente los cambios en las resoluciones solicitadas y las relaciones de aspecto en función de la capacidad del dispositivo, primero intenta mantener la misma relación de aspecto (según lo determinado por cualquiera de las llamadas de
setTargetAspectRatioosetTargetResolution). - Una versión de "resolución 16 más cercana" de la resolución se considera como la misma relación de aspecto.
Modo ImageAnalysis sin bloqueo
- El comportamiento de
ImageReaderMode.ACQUIRE_LATEST_IMAGEahora no incluye bloqueos. Adquiere la última imagen en la cola, pero descarta continuamente las imágenes no utilizadas para permitir que la canalización de la cámara evite el bloqueo. - El analizador puede contener una sola imagen de manera indefinida sin detener la canalización.
- Si la aplicación proporciona un ejecutor que luego bloquea, se bloquea el caso práctico de ImageAnalysis.
- El ejecutor predeterminado establecido internamente se comporta como un ejecutor sin bloqueo.
Correcciones de errores
- Se corrigieron los problemas relacionados con el tiempo de espera de convergencia de 3A cuando se capturan imágenes en dispositivos sin enfoque, exposición ni balance de blancos automático.
- Se solucionó el problema que se producía cuando se tomaban fotos rápidamente con ImageCapture. Se corrigió el error
java.lang.IllegalStateException: maxImages (2) has already been acquired. - Se solucionó el problema que se producía cuando no se llamaba a
setLensFacingpara un caso práctico, lo que generabajava.lang.IllegalArgumentException: Unable to get camera ID for use case. - Se solucionó el problema por el que el dispositivo HEREDADO requería una relación de aspecto específica como resolución JPEG máxima.
- Se solucionó un problema que se producía al colocar en segundo plano la app mientras se abría la cámara.
- Se solucionó el problema en la API de niveles inferiores a 25, lo que quitó el error
checkAndUpdateEglState: invalid current EGLDisplay. - Se solucionó el problema relacionado con la desvinculación de la vista previa después de habilitar e iniciar extensiones.
- Los artefactos de compilación para la vista y las extensiones de la cámara ahora se publican como versiones Alfa.
Camera-Camera2 y Camera-Core versión 1.0.0-alpha03
2 julio de 2019
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha03 y androidx.camera:camera-camera2:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se agregó una aclaración de javadoc para "target" en las llamadas de configuración de setTarget.
Camera-Core
- Se corrigió la falla en la superficie de entrada/salida no configurada para apertura/cierre o vinculación/desvinculación rápidos.
- Cambio a nuevas implementaciones de Futures.
- Se corrigieron pruebas para que sean más sólidas.
- La prueba de integración principal ahora muestra el tiempo de captura de fotos.
- Se desarrolló la clase de compatibilidad interna para ejecutores.
- Las capturas de la app de prueba de sincronización esperan a que se completen las anteriores para mejorar la estabilidad.
Extensions
- Se agregaron verificaciones de control de versiones.
- Cobertura de prueba adicional: devoluciones de llamadas de eventos de extensión.
- Mejoras para imágenes y metadatos internamente correspondientes.
- Se implementaron correcciones en el cambio de modo en la app de prueba.
Camera-Camera2 y Camera-Core versión 1.0.0-alpha02
5 de junio de 2019
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha02 y androidx.camera:camera-camera2:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó el problema relacionado con la división por cero cuando se usa el emulador.
- Se corrigió el error NullPointerException/Surface Abandoned que se producía en algunos dispositivos cuando se tomaban fotos rápidamente mientras se desvinculaban y volvían a vincular con rapidez los casos prácticos.
- Se corrigió un problema interno para garantizar que las actualizaciones de la solicitud de captura afecten a todas las superficies de manera coherente.
- Se implementaron mejoras de estabilidad al reiniciar casos prácticos en nuevas instancias de apps.
- Se hicieron cambios en la arquitectura interna con el objetivo de prepararla para ejecutores de compatibilidad en la API.
- Se hicieron aclaraciones adicionales de Javadoc sobre la clase CameraX y la administración del ciclo de vida.
- Se agregaron pruebas instrumentadas para la aplicación de prueba de rendimiento Antelope.
- Se quitó la necesidad de "-keepattributes Signature" en la configuración de ProGuard de la app.
Camera-Camera2 y Camera-Core 1.0.0-alpha01
7 de mayo de 2019
Lanzamiento de androidx.camera:camera-core:1.0.0-alpha01 y androidx.camera:camera-camera2:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Camera-Lifecycle versión 1.0.0-beta11
14 de octubre de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta11. La versión 1.0.0-beta11 contiene estas confirmaciones.
Correcciones de errores
<UseCase>.getTargetRotation()mostraráSurface.ROTATION_0si se lo llama antes de que se conecte a una instancia de Camera, a menos que se haya establecido una targetRotation en el Builder o el UseCase. (I80fcd)
Camera-Lifecycle versión 1.0.0-beta10
23 de septiembre de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta10. La versión 1.0.0-beta10 contiene estas confirmaciones.
Correcciones de errores
- Lanzamiento de la versión para admitir Camera-Core versión 1.0.0-beta10.
Camera-Lifecycle versión 1.0.0-beta09
16 de septiembre de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta09. La versión 1.0.0-beta09 contiene estas confirmaciones.
Camera-Lifecycle versión 1.0.0-beta08
19 de agosto de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta08. La versión 1.0.0-beta08 contiene estas confirmaciones.
Correcciones de errores
- La inicialización ya no debería fallar cuando se usa un objeto Context que no muestra un objeto Application de
Context.getApplicationContext(). (I3d3c9, b/160817073)
Camera-Lifecycle versión 1.0.0-beta07
22 de julio de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta07. La versión 1.0.0-beta07 contiene estas confirmaciones.
Camera-Lifecycle versión 1.0.0-beta06
24 de junio de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta06. La versión 1.0.0-beta06 contiene estas confirmaciones.
Cambios en la API
- Ahora, CameraX se puede configurar con ProcessCameraProvider#configureInstance() antes de llamar a ProcessCameraProvider#getInstance(). Esto permite la personalización de CameraXConfig sin necesidad de implementar CameraXConfig.Provider en la clase Application de la app. (Ia1a8d)
Camera-Lifecycle versión 1.0.0-beta05
10 de junio de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta05. La versión 1.0.0-beta05 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la falla de inicio de la app que se producía cuando se inicializaba CameraX mientras el teléfono estaba en modo No interrumpir. Una
InitializationExceptioncontiene unaCameraUnavailableExceptionque se configurará comoListenableFuturedel resultado de la inicialización en lugar de hacer fallar la aplicación. (I9909a, b/149413835)
Camera-Lifecycle versión 1.0.0-beta04
27 de mayo de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta04. La versión 1.0.0-beta04 contiene estas confirmaciones.
Camera-Lifecycle versión 1.0.0-beta03
15 de abril de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta03. La versión 1.0.0-beta03 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la regresión de beta03 por la que, cuando se llamaba a
bindToLifecycle()sin un soloUseCase, se generaba una excepción. Esto evitó que se recuperara una instancia deCamerasin vincular unUseCase. - Se realizaron correcciones para admitir el lanzamiento de
camera-core.
Camera-Lifecycle versión 1.0.0-beta01
26 de febrero de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la documentación para indicar que, cuando se obtiene un objeto
ProcessCameraProviderdurante la inicialización, se usa una configuración predeterminada y que la extensiónApplicationes opcional. (I5e395)
Camera-Lifecycle versión 1.0.0-beta02
1 de abril de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se realizó una actualización para admitir las correcciones de errores en los artefactos
camera-camera2:1.0.0-beta02ycamera-core:1.0.0-beta02.
Camera-Lifecycle versión 1.0.0-alpha10
10 de febrero de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Cambios en la API
- Se agregó la anotación
@MainThreada los métodos BindToLifecycle, unbind y unbindAll. (I990d2)
Camera-Lifecycle versión 1.0.0-alpha03
22 de enero de 2020
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Actualizaciones
- Se implementaron varias correcciones y actualizaciones para admitir los cambios de Camera Core y Camera2.
Camera-Lifecycle versión 1.0.0-alpha02
18 de diciembre de 2019
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Cambios de dependencia
- Se actualizó para poder usar
androidx.camera:camera-core:1.0.0-alpha08.
Camera-Lifecycle versión 1.0.0-alpha01
4 de diciembre de 2019
Lanzamiento de androidx.camera:camera-lifecycle:1.0.0-alpha01. La versión 1.0.0-alpha01 de camera-lifecycle contiene estas confirmaciones.
Notas sobre la API
- Se agrega el artefacto de camera-lifecycle, que proporciona una interfaz
LifeCycleCameraProvidery una implementación llamadaProcessCameraProvider, la que proporciona muchas de las funciones de la clase CameraX anterior en Core y se obtiene mediante un métodogetInstance(). - Las apps deben incluir la biblioteca de camera-lifecycle para usar CameraX.
- Consulta las notas en la sección camera-core sobre cómo realizar la inicialización de CameraX con un elemento
ProcessCameraProvider.
Camera-Extensions y Camera-View versión 1.0.0
Versión 1.0.0-alpha32
15 de diciembre de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha32 y androidx.camera:camera-view:1.0.0-alpha32. La versión 1.0.0-alpha32 contiene estas confirmaciones.
Cambios en la API
- Se quitaron las anotaciones
@RequiresApi(21)innecesarias de las clases y las interfaces internas. (I8e286, b/204917951) - Se actualizaron los archivos de API para el artefacto de extensiones de cámara. (If683a, b/161377155)
Correcciones de errores
- No se permite que la app habilite los modos de extensión cuando se vincule
VideoCapture. Las extensiones de CameraX solo admitenImageCaptureyPreview. Aún no se admiteVideoCapture. Si la app vinculaVideoCapturey habilita cualquier modo de extensión, se generará unaIllegalArgumentException. (I0d87b) CameraSelector#filterya no arroja unaIllegalArgumentExceptioncuando el conjunto de resultados está vacío. (I27804)- Se cambió el nombre de la API de
ExtensionsManager#getInstanceporgetInstanceAsyncporque muestraListenableFuture. El sufijo asíncrono del nombre de la función puede presentar claramente que es una función asíncrona. (I279d2) - Quita el parámetro de resolución de la API de
ExtensionsManager#getEstimatedCaptureLatencyRange, ya que los usuarios no pueden saber qué tamaños son compatibles con el caso de uso deImageCapturey no pueden distinguir si la información de latencia que se muestra es para el tamaño máximo de salida de captura o el parámetro de resolución de entrada. (I74bb2) - Mueve el parámetro
CameraProviderde las funcionesExtensionsManagera la APIgetInstance()para que los usuarios no necesiten ingresar el parámetroCameraProvidercada vez que llaman a las funcionesExtensionsManager. (Ic7e48)
Versión 1.0.0-alpha31
17 de noviembre de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha31 y androidx.camera:camera-view:1.0.0-alpha31. La versión 1.0.0-alpha31 contiene estas confirmaciones.
Cambios en la API
- Se agregó CameraSelector#filter a la API pública para filtrar una lista de CameraInfos que se basa en CameraSelector. (I105d0)
Correcciones de errores
- Se corrigió una falla que se producía cuando se cambiaba, de manera rápida, el modo de extensiones en ciertos dispositivos. (Iebbef)
Versión 1.0.0-alpha30
13 de octubre de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha30 y androidx.camera:camera-view:1.0.0-alpha30. La versión 1.0.0-alpha30 contiene estas confirmaciones.
Cambios en la API
- Se agregó la anotación @RequiresApi(21) a todas las clases de CameraX, y se descartó minSdkVersion de AndroidManifest.xml. De esta manera, se permitirá que camera-core se integre con facilidad a las aplicaciones que tienen una versión de minSdkVersion inferior a 21, pero que quieran usar, de manera condicional, rutas de código que se basen en el nivel de API 21 y versiones posteriores. Para cualquier aplicación con minSdkVersion 21 o posterior, este cambio no requiere ninguna acción. (Ie7f2e, b/200599470)
Correcciones de errores
- Se corrigió el error AbstractMethodError que se produce cuando ProGuard esté habilitado. (Iae468, b/201177844)
Versión 1.0.0-alpha29
29 de septiembre de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha29 y androidx.camera:camera-view:1.0.0-alpha29. La versión 1.0.0-alpha29 contiene estas confirmaciones.
Cambios en la API
- Ahora que las API ya no son experimentales, se quitó la anotación ExperimentalUseCaseGroup. (I01ef5)
- Se quitó
RotationProvider#removeAllListeners(). En su lugar, utilizaRotationProvider#removeListener(...). (Id9d4a) - Se actualizó la clase RotationReceiver: set/clear Listener cambió a add/remove/removeAll. Además, se quitó la variante setListener que usaba el subproceso principal de manera predeterminada y se agregó la anotación de métodos. (Ib1669)
Correcciones de errores
- Se cambió el nombre de ExtensionMode#BEAUTY a FACE_RETOUCH para presentar correctamente lo que hace el modo de extensión. (I61f54, b/198515274)
- Se solucionó el problema por el cual la cámara se cerraba inesperadamente cuando se usaban varios CameraController y PreviewView en un objeto Activity. (Ibfd18, b/197539358)
Versión 1.0.0-alpha28
18 de agosto de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha28 y androidx.camera:camera-view:1.0.0-alpha28. La versión 1.0.0-alpha28 contiene estas confirmaciones.
Cambios en la API
- Ahora que las API ya no son experimentales, se quitó la anotación ExperimentalUseCaseGroupLifecycle. (I17b85)
- Se refactorizó RotationListener y se cambió su nombre por RotationProvider. Continúa ofreciendo la misma función con una API un poco distinta. (Idffc5)
- Se cambió el nombre de TAP_TO_FOCUS_UNSUCCESSFUL por TAP_TO_FOCUS_NOT_FOCUSED y el de TAP_TO_FOCUS_SUCCESSFUL por TAP_TO_FOCUS_FOCUSED. Se realizó la versión definitiva de OutputSize. (I099fa)
Correcciones de errores
- Se quitaron las clases
<EffectName><UseCase>Extenderobsoletas, ExtensionsErrorListener y las API de ExtensionsManager relacionadas. (I3b8c3)
Versión 1.0.0-alpha27
21 de julio de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha27 y androidx.camera:camera-view:1.0.0-alpha27. La versión 1.0.0-alpha27 contiene estas confirmaciones.
Cambios en la API
- La API de viewport pasó a ser experimental. Se quitó la anotación experimental de la API. (I717ea)
- Se cambió el nombre de
CoordinateTransform#getTransformporCoordinateTransform#transformy se actualizó JavaDoc. (I864ae)
Correcciones de errores
- Se solucionó el problema del modo estirado de
PreviewView PERFORMANCEcuando se usaba con la IU de Compose. (Ie1137, b/183864890)
Versión 1.0.0-alpha26
30 de junio de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha26 y androidx.camera:camera-view:1.0.0-alpha26. La versión 1.0.0-alpha26 contiene estas confirmaciones.
Cambios en la API
- Agrega un nuevo método
CameraController#getTapToFocusState()que expone el último resultado de tap-to-focus. (Iaccb0) - Agrega más funciones de camera-core a CameraController: métodos get y métodos set para la relación de aspecto de destino, la resolución objetivo, el modo de captura, CameraControl y los ejecutores personalizados. (Iea8f2)
- Agrega una clase de RotationReceiver que recibe cambios en la rotación de la superficie. Se puede usar para configurar la rotación objetivo cuando el dispositivo se encuentre en modo fijo de paisaje o retrato. (Ib278f)
- Se expusieron las nuevas API públicas de getEstimatedCaptureLatencyRange en la clase de ExtensionsManager. (I6a8ec)
- ExtensionsErrorListener dejó de estar disponible. Actualmente, esta interfaz solo se utiliza para supervisar si faltan Preview o ImageCapture cuando se habilitan los modos de extensión. CameraX agregará automáticamente Preview o ImageCapture adicionales para que las funciones de la extensión funcionen bien. Después de eso, no se informará ningún error mediante esta interfaz. (I47d9e)
- Se expusieron las API nuevas de ExtensionsManager getInstance, isExtensionAvailable y getExtensionEnabledCameraSelector, y las clases obsoletas de
<EffectName><UseCase>Extendery las API relacionadas. (I329e6)
Versión 1.0.0-alpha25
2 de junio de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha25 y androidx.camera:camera-view:1.0.0-alpha25. La versión 1.0.0-alpha25 contiene estas confirmaciones.
Cambios en la API
- Ya finalizó la etapa experimental de las API de ExperimentalCameraFilter, por lo que ya son formales. Se pueden usar sin el elemento OptIn anotado. (I4bc94)
- Se agregó una utilidad que transforma las coordenadas entre casos de uso. Ejemplo de uso: transformación de las coordenadas detectadas en el caso de uso de ImageAnalysis y destacado del objeto detectado en la vista previa. (I63ab1, b/137515129)
- Se quitó
CameraView.CameraViewse reemplazó conCameraController. Consulta la guía de migración para saber cómo realizar el proceso: (Id5005)
Correcciones de errores
- Se reemplazó
ExperimentalUseCaseGroupLifecycleconExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Versión 1.0.0-alpha24
21 de abril de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha24 y androidx.camera:camera-view:1.0.0-alpha24. La versión 1.0.0-alpha24 contiene estas confirmaciones.
Correcciones de errores
- Se reemplazó la anotación
@Experimentalpor@RequiresOptInpara las APIs experimentales. Para llamar a las API experimentales, usaandroidx.annotation.OptInen lugar del elementoandroidx.annotation.experimental.UseExperimentalobsoleto. (Iff226) - Se corrigió el problema extendido de PreviewView en Samsung J5 Prime (Ib10b6).
Camera Extensions y View versión 1.0.0-alpha23
24 de marzo de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha23 y androidx.camera:camera-view:1.0.0-alpha23. La versión 1.0.0-alpha23 contiene estas confirmaciones.
Cambios en la API
- CameraView dejará de estar disponible. En su lugar, utiliza
LifecycleCameraController. Ver la guía de migración. (Idac2c) - Se agregó la anotación FloatRange para setLinearZoom(). (I69971)
Correcciones de errores
- Se fijaron las dependencias de camera-view para confiar en artefactos 1.0.0. La dependencia de camera-view ya no hará que la resolución de la dependencia de Gradle actualice automáticamente camera-core, camera-camera2 y camera-lifecycle a los artefactos 1.1.0 más recientes, aunque camera-view siga siendo compatible con esos artefactos si están configurados explícitamente para usar 1.1.0. (Ic8fa1, b/181599852)
- Se corrigió la vista previa extendida de Samsung A3 en PreviewView. (Iacb30, b/180121821)
- Se solucionó el problema por el cual no se podía establecer el selector de cámara antes de esta se inicialice. (Ic8bd0)
Camera Extensions y View versión 1.0.0-alpha22
24 de febrero de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha22 y androidx.camera:camera-view:1.0.0-alpha22. La versión 1.0.0-alpha22 contiene estas confirmaciones.
Cambios en la API
- Se agregó un captador de CameraInfo a CameraController. (Ib8138, b/178251727)
Correcciones de errores
- Se corrigió ExtensionsErrorListener para que informe errores cuando solo Preview o ImageCapture están vinculados. (I5ae39)
Camera Extensions y View versión 1.0.0-alpha21
27 de enero de 2021
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha21 y androidx.camera:camera-view:1.0.0-alpha21. La versión 1.0.0-alpha21 contiene estas confirmaciones.
Lanzamiento para admitir otros artefactos de la biblioteca de cámara.
Camera Extensions y View versión 1.0.0-alpha20
16 de diciembre de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha20 y androidx.camera:camera-view:1.0.0-alpha20. La versión 1.0.0-alpha20 contiene estas confirmaciones.
Lanzamiento para admitir otros artefactos de la biblioteca de cámara.
Camera-Extensions y Camera-View versión 1.0.0-alpha19
11 de noviembre de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha19 y androidx.camera:camera-view:1.0.0-alpha19. La versión 1.0.0-alpha19 contiene estas confirmaciones.
Correcciones de errores
- Se introdujo la anotación
@ExperimentalVideoa camera-view. Esta anotación marca las API que exponen las funciones experimentales de video que están sujetas a cambios a medida que las funciones se desarrollan completamente. Cualquier método que use estas API deberá usar la anotación@UseExperimentalconExperimentalVideocomomarkerClass. (I6d729)
Camera-Extensions versión 1.0.0-alpha18
14 de octubre de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha18. La versión 1.0.0-alpha18 contiene estas confirmaciones.
Correcciones de errores
- Se mejoró la latencia de la inicialización de CameraX y bindToLifecycle. (I61dc5)
<UseCase>.getTargetRotation()mostraráSurface.ROTATION_0si se lo llama antes de que se conecte a una instancia de Camera, a menos que se haya establecido una targetRotation en el Builder o el UseCase. (I80fcd)
Camera-View versión 1.0.0-alpha18
14 de octubre de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha18. La versión 1.0.0-alpha18 contiene estas confirmaciones.
Lanzamiento para admitir otros artefactos de la biblioteca de cámara.
Camera-Extensions versión 1.0.0-alpha17
23 de septiembre de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha17. La versión 1.0.0-alpha17 contiene estas confirmaciones.
Correcciones de errores
- Lanzamiento de la versión para admitir Camera-Core versión 1.0.0-beta10.
Camera-View versión 1.0.0-alpha17
23 de septiembre de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha17. La versión 1.0.0-alpha17 contiene estas confirmaciones.
Correcciones de errores
- Lanzamiento de la versión para admitir Camera-Core versión 1.0.0-beta10.
Camera-Extensions versión 1.0.0-alpha16
16 de septiembre de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha16. La versión 1.0.0-alpha16 contiene estas confirmaciones.
Correcciones de errores
- Se agregó un método en
ExtensionsManagera fin de obtener un objetoExtensionsque se usa para habilitar y buscar extensiones en instancias de Camera. (I4fb7e)
Camera-View versión 1.0.0-alpha16
16 de septiembre de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha16. La versión 1.0.0-alpha16 contiene estas confirmaciones.
Cambios en la API
- Se quitaron
PreviewView#setDeviceRotationForRemoteDisplayMode()yPreviewView#getDeviceRotationForRemoteDisplayMode(). Los dos métodos se utilizan para personalizar la rotación de la vista previa cuando la rotación deseada no es la de la pantalla, p. ej., en la pantalla remota. A fin de controlar la rotación de vista previa que no es de visualización, establece la rotación deseada conPreview#setTargetRotation()y el elementoPreviewView#getViewPort(targetRotation)agregado recientemente. (Ib62cc) - Se cambió el nombre de
createSurfaceProvider()agetSurfaceProvider(). El método siempre mostrará la misma instancia de Preview.SurfaceProvider. (Iff83c)
Correcciones de errores
- Se forzó PreviewView a usar TextureView si el efecto de extensión está habilitado y la implementación de la biblioteca del proveedor debe realizar un proceso especial en la superficie de salida. (I0c3cc)
- Se permite la rotación de destino arbitraria en Vista previa. La información de transformación se calcula y se muestra al usuario en el momento mediante una devolución de llamada
TranformationInfoListenernueva. (I21470)
Errores conocidos
- En PreviewView, no se invoca
OnClickListener#onClick()cuando el usuario final hace clic en PreviewView. PreviewView#onTouchEvent() consume el evento táctil por error. El problema se corregirá en la próxima versión. - El MeteringPoint obtenido de
PreviewView#getMeteringPointFactory()puede ser incorrecto si se usa ViewPort con PreviewView.
Camera-Extensions versión 1.0.0-alpha15
19 de agosto de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha15. La versión 1.0.0-alpha15 contiene estas confirmaciones.
Correcciones de errores
- El método
ExtensionsManager.init()ahora toma un objeto Context como parámetro en lugar de tener 0 argumentos. (Ife754) La inicialización ya no debería fallar cuando se usa un objeto Context que no muestra un objeto Application de
Context.getApplicationContext(). (I3d3c9, b/160817073)Camera-View versión 1.0.0-alpha15
19 de agosto de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha15. La versión 1.0.0-alpha15 contiene estas confirmaciones.
Correcciones de errores
DisplayOrientedMeteringPointFactorytoma una instancia deCameraInfoen lugar deCameraSelector, de modo que haya un mapeo directo con el objeto Camera para el que la fábrica generará puntos. Todas las clases que usanDisplayOrientedMeteringPointFactorytambién toman una instancia deCameraInfoen lugar deCameraSelector. (I400c1)- Se quitó
TextureViewMeteringPointFactory.PreviewViewproporciona una API pública (createMeteringPointFactory()) para crear una fábrica de puntos de medición independientemente de si usa unTextureViewo unSurfaceView. (Ide693) - Se cambió el nombre de los modos de implementación
SURFACE_VIEW/TEXTURE_VIEWde PreviewView aPERFORMANCE/COMPATIBLE.PERFORMANCEes el modoSURFACE_VIEWanterior yCOMPATIBLEes el modoTEXTURE_VIEWanterior. (I0edc2) - Para la captura de imágenes, se reemplazó la marca horizontal de giro en los metadatos según la dirección de la cámara. (I28499)
Camera-Extensions versión 1.0.0-alpha14
22 de julio de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha14. La versión 1.0.0-alpha14 contiene estas confirmaciones.
Camera-View versión 1.0.0-alpha14
22 de julio de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha14. La versión 1.0.0-alpha14 contiene estas confirmaciones.
Camera-Extensions versión 1.0.0-alpha13
24 de junio de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha13. La versión 1.0.0-alpha13 contiene estas confirmaciones.
Correcciones de errores
- Se agregaron interfaces experimentales para filtrar cámaras según el ID de la cámara y CameraCharacteristics. (I28f61).
Camera-View versión 1.0.0-alpha13
24 de junio de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha13. La versión 1.0.0-alpha13 contiene estas confirmaciones.
Correcciones de errores
- CameraView ya no falla con una IllegalArgumentException cuando se vincula a un LifecycleOwner cuyo ciclo de vida pasa a un estado DESTROYED poco después de vincularse. La vinculación de ciclos de vida en un estado DESTROYED no intentará abrir la cámara (I7c2b8).
- PreviewView StreamState ahora está disponible mediante CameraView.getPreviewStreamState(). (I21a2b)
Camera-Extensions versión 1.0.0-alpha12
10 de junio de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la falla de inicio de la app que se producía cuando se inicializaba CameraX mientras el teléfono estaba en modo No interrumpir. Una
InitializationExceptioncontiene unaCameraUnavailableExceptionque se configurará comoListenableFuturedel resultado de la inicialización en lugar de hacer fallar la aplicación. (I9909a, b/149413835)
Camera-View versión 1.0.0-alpha12
10 de junio de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.
Correcciones de errores
- Agrega la API de
PreviewView#getBitmap(), que muestra una representación en mapa de bits del contenido que se muestra en la superficie de vista previa. (I9b500, b/157659818)
Camera-Extensions versión 1.0.0-alpha11
27 de mayo de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha11. La versión 1.0.0-alpha11 contiene estas confirmaciones.
Camera-View versión 1.0.0-alpha12
10 de junio de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha12. La versión 1.0.0-alpha12 contiene estas confirmaciones.
Nuevas funciones
Cambios en la API
Correcciones de errores
- Agrega la API de
PreviewView#getBitmap(), que muestra una representación en mapa de bits del contenido que se muestra en la superficie de vista previa. (I9b500, b/157659818)
Camera-View versión 1.0.0-alpha11
27 de mayo de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha11. La versión 1.0.0-alpha11 contiene estas confirmaciones.
Cambios en la API
- Se agregó la API de
PreviewView#getPreviewStreamStateque permite a las apps observar si la vista previa se transmite o no. Cuando la PreviewView está en modo TEXTure_VIEW, el estado STREAMING también garantiza que la imagen de vista previa sea visible. (Ic0906, b/154652477) - Se agregó la API de
PreviewView#setDeviceRotationForRemoteDisplayMode()a fin de proporcionar la rotación del dispositivo para cálculos de transformación si la aplicación se ejecuta en modo de visualización remota. (I59b95, b/153514525)
Correcciones de errores
- Se solucionó el problema relacionado con la distorsión de la vista previa en cámaras
FULL/LIMITED/LEVEL_3con Android 7.0 y versiones anteriores. Se forzó el uso del modoImplementationMode#TEXTURE_VIEWcuando la versión de Android es 7.0 o anterior. (I83e30, b/155085307) - Se quitó el parámetro
CameraInfodePreviewView#createSurfaceProvider(); ahora,PreviewViewlo recupera internamente desde laSurfaceRequest. (If18f0, b/154652477) - Se corrigió la relación de aspecto predeterminada de VideoCapture y se estableció en 16:9 en CameraView. (Ie6a7b, b/153237864)
- Se corrigieron los problemas relacionados con la pantalla negra de
PreviewViewcuando se deslizaba el fragmento fuera dePreviewy, luego, se deslizaba hacia atrás en ViewPager2. También se corrigió el problema enremoveView(previewview)y luego enaddView(previewView). (Iab555, b/149877652, b/147354615) - Se actualizó la API de
CameraView#takePicture()para permitir guardar imágenes enUriyOutputStream. Se actualizó la app de prueba para usarUricomo ejemplo canónico. (Ia2459, b/153607583) - Puedes establecer el tipo de escala de PreviewView desde un diseño XML configurando el atributo
ScaleType. (I08565, b/153015659) - Se quitó
CameraView.ScaleType. En su lugar, usaPreviewView.ScaleTypepara establecer/obtener un tipo de escala con CameraView. (Ia8974, b/153014831) - Otórgale a
PreviewViewun color de fondo predeterminado si aún no tiene ninguno. Esto evita que el contenido que está detrás de este objeto sea visible antes de que comience la vista previa de la transmisión. (I09fad)
Camera-Extensions versión 1.0.0-alpha10
15 de abril de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Correcciones de errores
- Se realizaron correcciones para admitir el lanzamiento de Camera-Core
Camera-View versión 1.0.0-alpha10
15 de abril de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha010. La versión 1.0.0-alpha010 contiene estas confirmaciones.
Correcciones de errores
- Se solucionó un problema conocido anterior por el que la implementación de SurfaceView de
PreviewViewno funcionaba correctamente en algunos dispositivos y hacía que la aplicación fallara después de reanudar la vista previa. (I5ed6b)
Camera-Extensions versión 1.0.0-alpha09
1 de abril de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Correcciones de errores
- Se realizó una actualización para admitir correcciones de errores en los artefactos
camera-camera2:1.0.0-beta02,camera-core:1.0.0-beta02ycamera-lifecycle:1.0.0-beta02.
Camera-View versión 1.0.0-alpha09
1 de abril de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Errores conocidos
- Es posible que el uso de
ImplementationMode.SURFACE_VIEWconPreviewViewno funcione bien en algunos dispositivos, ya que laSurfaceViewque se usa para la vista previa invalida su superficie cuando se detiene el ciclo de vida de la ventana en la que se encuentra. Cuando se reinicia, la cámara se vuelve a abrir y puede intentar reanudar la vista previa antes de que la superficie deSurfaceViewvuelva a ser válida. Por ahora, debes usarImplementationMode.TEXTURE_VIEW.
Cambios en la API
- Se cambió el nombre de
PreviewView.setImplementationMode()porPreviewView.setPreferredImplementationMode(). - Se cambió el nombre de
PreviewView.getImplementationMode()porPreviewView.getPreferredImplementationMode(). - Se reemplazó
PreviewView.getSurfaceProvider()porPreviewView.createSurfaceProvider(CameraInfo), que toma una instancia deCameraInfoanulable que se usa para optimizar la vista previa medianteImplementationMode.SURFACE_VIEWsiempre que sea posible. Si se pasa una instancia nula o si configuras el modo de implementación preferido comoImplementationMode.TEXTURE_VIEW, se usa internamenteImplementationMode.TEXTURE_VIEW. En la siguiente muestra de código, se indica cómo se usaban antes los casos prácticos de vista previa con PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)Ahora, puedes escribir lo siguiente:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))Se agregó la anotación
@UiThreadaPreviewView.getSurfaceProvider(), lo que significa que se debe invocar desde el subproceso principal (I192f3).Se agregó
PreviewView.setScaleType(), lo que permite establecer el tipo de escala de la vista previa. Acepta uno de los valores dePreviewView.ScaleTypey el valor predeterminado esPreviewView.ScaleType.FILL_CENTER.Se agregó
PreviewView.getScaleType().Se quitó la compatibilidad con la configuración del modo de implementación de
PreviewViewen un diseño XML con el atributoimplementationMode.Se agregó la API de
createMeteringPointFactory()a PreviewView para admitir la conversión (x, y) enPreviewViewaMeteringPoint. (Ib36d7)
Correcciones de errores
- Se corrigieron casos en los que se mostraba una vista previa incorrecta después de que se cambiaba el tamaño de
PreviewView. (I71101)
Camera-Extensions versión 1.0.0-alpha08
26 de febrero de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Camera-View versión 1.0.0-alpha08
26 de febrero de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Correcciones de errores
- Se reemplazó el elemento
ListenableFuturedeSurfaceRequest.provideSurface()por unExecutory unaCallback. Esto simplifica la API porque no se requiere el manejo de excepciones enprovideSurface()y no se pueda cancelar la devolución de llamada aprovideSurface(). De esta forma, se evitan fallas en dispositivos más antiguos causadas por el lanzamiento de superficies de forma anticipada. Ahora se usa el objetoSurfaceRequest.Resultpara realizar un seguimiento de cómo unaSurfaceRequestutiliza laSurfaceproporcionada (I7854b). - Se cambió el nombre de
SurfaceRequest.setSurface(Surface)porSurfaceRequest.provideSurface(Surface)y el deSurfaceRequest.setWillNotComplete()porSurfaceRequest.willNotProvideSurface(). (I224fe) - Se corrigió la inicialización de las variantes de apps con ProGuard habilitado conservando la marca que establece el proveedor
CameraXConfigpredeterminado. (I2d6c1)
Camera-Extensions versión 1.0.0-alpha07
10 de febrero de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.
Correcciones de errores
- Los argumentos que antes se pasaban en
ImageCapture.OnImageSavedCallback.onError()yImageCapture.OnImageCapturedCallback.onError()ahora se reemplazaron por un solo argumentoImageCaptureException, que aún contiene toda la información que se pasó anteriormente. - Se quitó el argumento del archivo que antes se pasaba en
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
Camera-View versión 1.0.0-alpha07
10 de febrero de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.
Cambios en la API
- La implementación
TextureViewdePreviewViewahora establece el tamaño deTextureViewcomo el tamaño de salida del sensor de la cámara antes de escalarlo para llenar suPreviewViewsuperior. Si quieres que la vista previa de la cámara llene toda una parte de la IU (por ejemplo, toda la pantalla), no debes establecer el tamaño de laPreviewViewcomo un valor fijo ni unir su contenido (por ejemplo, usando el atributo "wrap_content"), ya que esto puede hacer que la vista previa de la cámara solo llene parte de laPreviewView(si el tamaño de salida del sensor de la cámara es menor). En cambio, debes configurar laPreviewViewde modo que sea tan grande como el elemento superior (por ejemplo, mediante el atributo "match_parent") (1204869).
Correcciones de errores
- Se actualizó
ImageCapturepara permitir que se guarden imágenes enUriyOutputStream. Se combinaron los métodostakePicturesobrecargados en uno solo. Se actualizó la app de prueba para usarUricomo ejemplo canónico. (Ia3bec) - Se cambió el nombre de
Preview.PreviewSurfaceProviderporPreview.SurfaceProvider. LosSurfaceProviderya no requieren que los desarrolladores creen su propioListenableFuturey ahora se proporciona laSurfacea través de un objetoSurfaceRequestnuevo. Se quitó el métodoPreview.getPreviewSurfaceProvider()debido a su potencial de uso inadecuado cuandoPreviewse sincroniza con otras clases, comoPreviewView(I20105). - Los argumentos que antes se pasaban en
ImageCapture.OnImageSavedCallback.onError()yImageCapture.OnImageCapturedCallback.onError()ahora se reemplazaron por un solo argumentoImageCaptureException, que aún contiene toda la información que se pasó anteriormente. - Se quitó el argumento del archivo que antes se pasaba en
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - Se actualizó la API y se combinaron los métodos
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()ygetLinearZoom()deCameraInfoengetZoomState(), que muestra una instancia deZoomState. (Ib19fe)
Camera-Extensions versión 1.0.0-alpha06
22 de enero de 2020
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.
Actualizaciones
- Se implementaron varias correcciones y actualizaciones para admitir los cambios de Camera Core y Camera2.
Camera-View versión 1.0.0-alpha06
22 de enero de 2020
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.
Actualizaciones
- Se implementaron varias correcciones y actualizaciones para admitir los cambios de Camera Core y Camera2.
Camera-Extensions versión 1.0.0-alpha05
18 de diciembre de 2019
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Correcciones de errores
- Se actualizó para que coincida con las API internas de Camera Core.
Camera-View versión 1.0.0-alpha05
18 de diciembre de 2019
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Errores conocidos
- Es posible que la relación de aspecto sea incorrecta al usar PreviewView. (b/146215202)
Nuevas funciones
- Se implementó una nueva clase llamada
PreviewView.TextureViewImplementationque sincroniza el ciclo de vida de SurfaceTexture con el uso que hace la cámara de la superficie de TextureView.
Camera-Extensions versión 1.0.0-alpha04
4 de diciembre de 2019
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha04. La versión 1.0.0-alpha04 de camera-extensions contiene estas confirmaciones.
Cambios en la API
Ahora, la verificación de la disponibilidad y habilitación de una extensión toma un objeto
CameraSelectorcomo parámetro de entrada. Este debe ser el mismo elementoCameraSelectorque se usa para vincular el caso práctico.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)Antes de usar la biblioteca de extensiones, debes inicializar las extensiones.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Camera-View versión 1.0.0-alpha04
4 de diciembre de 2019
Lanzamiento de androidx.camera:camera-view:1.0.0-alpha04. La versión 1.0.0-alpha04 de la camera-view contiene estas confirmaciones.
Cambios en la API
- Se proporciona una clase
PreviewViewpara mostrar fácilmente el resultado del caso práctico de vista previa en una aplicación. Se puede incluir
PreviewViewen el diseño:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewproporciona un elementoPreviewSurfaceProviderpara conectar fácilmente un caso práctico de vista previa.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)"
ZoomLevel" ahora es "ZoomRatio" en la denominación de API.Se cambió la nulidad de algunos parámetros del método.
Camera-Extensions y Camera-View versión 1.0.0-alpha03
9 de octubre de 2019
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha03 y androidx.camera:camera-view:1.0.0-alpha03. Estas son las confirmaciones incluidas en camera-extensions:1.0.0-alpha03, y estas las incluidas en camera-view:1.0.0-alpha03.
Nuevas funciones
- Se agregó el inicializador de Context para extensiones. Se actualizó la versión de Extensions a 1.1.0.
Camera-Extensions y Camera-View versión 1.0.0-alpha02
5 de septiembre de 2019
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha02 y androidx.camera:camera-view:1.0.0-alpha02. Estas son las confirmaciones incluidas en camera-extensions:1.0.0-alpha02 y camera-view:1.0.0-alpha02.
- Se agregaron pruebas para verificar que
PreviewImageProcessorImplhaya implementado las marcas de tiempo de forma correcta. - Se solucionó el error de prueba
ExtensionTesten Nexus 5 (API nivel 21) y se garantizó que la vista previa estuviera disponible.
Camera-Extensions y Camera-View versión 1.0.0-alpha01
7 de agosto de 2019
Lanzamiento de androidx.camera:camera-extensions:1.0.0-alpha01 y androidx.camera:camera-view:1.0.0-alpha01.
Estas son las confirmaciones incluidas en camera-extensions:1.0.0-alpha01 y camera-view:1.0.0-alpha01.
- Nueva biblioteca para futuras extensiones de cámara a fin de acceder a efectos en dispositivos compatibles. Aún estamos trabajando en esta biblioteca.
- Nueva clase de Camera View. Aún estamos trabajando en esta biblioteca.