CameraX
En esta tabla, se enumeran todos los artefactos del grupo androidx.camera
.
Artefacto | Versión estable actual | Próxima versión potencial | Versión beta | Versión Alfa |
---|---|---|---|---|
camera-camera2 | - | - | 1.0.0-beta09 | - |
camera-core | - | - | 1.0.0-beta09 | - |
camera-extensions | - | - | - | 1.0.0-alpha16 |
camera-lifecycle | - | - | 1.0.0-beta09 | - |
camera-view | - | - | - | 1.0.0-alpha16 |
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:
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.0.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 View class implementation "androidx.camera:camera-view:1.0.0-alpha20" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:1.0.0-alpha20" }
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Camera-Camera2 y Camera-Core versión 1.0.0
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
InitializationException
de modo que la app pueda controlar correctamente el AssertionError que ocurra 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
TranformationInfoListener
nueva. (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_ON
para tomar una foto y se cambia aFLASH_MODE_OFF
cuando 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
DisplayOrientedMeteringPointFactory
toma una instancia deCameraInfo
en 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 usanDisplayOrientedMeteringPointFactory
también toman una instancia deCameraInfo
en 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 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_START
yFIT_END
conFIT
.FIT
significa 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 Android 5.0. (I0c03a)
- Se corrigió el error de excepción
ConcurrentModificationException
que 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#startFocusAndMetering
fallará 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 deCameraXConfig
sin necesidad de implementarCameraXConfig.Provider
en la clase Application de la app (Ia1a8d). CameraControl#startFocusAndMetering
fallará 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
InitializationException
contiene unaCameraUnavailableException
que se configurará comoListenableFuture
del 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
startFocusAndMetering
en dispositivos en los queCONTROL_AF_STATE
era 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
InitializationException
contiene unaCameraUnavailableException
que se configurará comoListenableFuture
del resultado de la inicialización en lugar de hacer fallar la aplicación. (I9909a, b/149413835)
Correcciones de errores
- Se actualizaron los javadocs de
setTargetResolution
ysetTargetRotation
. (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
Camera2Interop
sin 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
ImageProxy
deImageCapture
. (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
ImageAnalysis
por la que se accedía aImageProxy
después de que se cerraba elImageReaderProxy
. Así, todos los elementosImageProxy
recibidos porAnalyzer
se deben cerrar antes de que se cierre elImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Se quitó el parámetro
CameraInfo
dePreviewView#createSurfaceProvider()
; ahora,PreviewView
lo 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
ImageAnalysis
por 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
ImageProxy
deImageCapture
. (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.SurfaceProvider
para 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 deCamera
sin 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()
deImageProxy
producido porImageCapture
a 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.gradle
para 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
IllegalArgumentException
que 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ó
bindToLifecycle
para que solo modifique el UseCase si se vincula correctamente. Antes, cuando se llamaba abindToLifecycle
para 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()
deImageProxy
producido porImageCapture
a fin de que coincida con el valor de rotación de la orientación de EXIF (Id4281, b/150802561). - Se corrigió
bindToLifecycle
para que solo modifique el UseCase si se vincula correctamente. Antes, cuando se llamaba abindToLifecycle
para 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
Preview
no 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
CameraXConfig
predeterminado (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
ListenableFuture
deSurfaceRequest.provideSurface()
por unExecutor
y 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.Result
para realizar un seguimiento de cómo unaSurfaceRequest
utiliza laSurface
proporcionada (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
CameraXConfig
predeterminado (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 deSurface
solo se retengan durante el uso de Camera2 (I9dac2). - Se ajustó correctamente
CONTROL_AE_TARGET_FPS_RANGE
a 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ó
ImageCapture
para permitir que se guarden imágenes enUri
yOutputStream
. Se combinaron los métodostakePicture
sobrecargados en uno solo. Se actualizó la app de prueba para usarUri
como ejemplo canónico (Ia3bec). - El nombre de
Preview.PreviewSurfaceProvider
cambió porPreview.SurfaceProvider
. LosSurfaceProvider
ya no requieren que los desarrolladores creen su propioListenableFuture
y ahora se proporciona laSurface
a través de un objetoSurfaceRequest
nuevo. Se quitó el métodoPreview.getPreviewSurfaceProvider()
debido a su potencial de uso inadecuado cuandoPreview
se 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
Preview
yImageCapture
como finales (I2500b). - Se actualizó la API y se combinaron los métodos
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
ygetLinearZoom()
deCameraInfo
engetZoomState()
, que muestra una instancia deZoomState
(Ib19fe). - Se quitaron los campos de API
OPTION_TARGET_CLASS
yOPTION_TARGET_NAME
deCameraXConfig
, 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
Application
a fin de inicializar CameraX. Ahora, se inicializará CameraX con una configuración predeterminada de Camera2, siempre que se incluya el artefactocamera-camera2
en el objetobuild.gradle
de 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
CameraInfo
usandoCamera2CameraInfo.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
Camera2CameraInfo
requiere 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
useCaseForSurface
deSurfaceOrientedMeteringPointFactory
poruseCaseForAspectRatio
y 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ámetroDisplay
y pasar la pantalla actual. - Se implementaron mejoras en Javadoc para las API de enfoque y medición en relación con las marcas
MeteringMode
y 3A, y el uso del parámetroDisplay
. - Se amplió la documentación de referencia para
setZoomRatio
ysetLinearZoom
.
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
ConcurrentModificationException
que 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
startFocusMetering
ycancelFocusMetering
ahora 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
PreviewView
oCameraView
pueden 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
FocusMeteringAction
yCameraControl
. - Se implementó
TorchControl
paraenableTorch()
ygetTorchState()
.
Cambios en la API
- Se ocultó IntDefs y se quitaron las constantes de IntDef de su definición.
- Se movió
rotationDegrees
de la claseOnImageCaptureCallback
aImageInfo
. - Se movió
rotationDegrees
de la claseAnalyzer
aImageInfo
.
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
Camera2Config
con 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 versión 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.Provider
y usar el objetoCamera2Config
predeterminado 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
ProcessCameraProvider
de manera asíncrona con el método estáticoProcessCameraProvider.getInstance()
, que muestra un objeto de escucha futuro, que proporciona elProcessCameraProvider
cuando 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
ListenableFuture
que muestragetInstance()
. De este modo, se garantiza que se pueda recuperar el proveedor de la cámara delFuture
sin 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.bindToLifecycle
recibe 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
PreviewView
que 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
ImageAnalysis
debe 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 ImageReaderMode
a 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
UIThread
para 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.OnImageCapturedListener
ahora esImageCapture.OnImageCapturedCallback
.ImageCapture.OnImageSavedListener
ahora esImageCapture.OnImageSavedCallback
.VideoCapture.OnVideoSavedListener
ahora 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.Metadata
por los métodos de acceso get/set/is.Ahora,
startFocusMetering
ycancelFocusMetering
muestranListenableFutures
, que representan la operación asíncrona de la llamada.Los elementos
MeteringPoints
ahora 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
) yTorchState
permanecerá desactivado. - Error conocido:
startFocusAndMetering
ycancelFocusAndMetering
inician y cancelan la medición de foco, pero muestran un elementocompleted (success)
futuro inmediato que no representa el comportamiento indicado. El objetoFocusMeteringResult
deListenableFuture<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_3
oRATIO_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.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
- API de
Se agregó CameraInfo con API de Check Flash Available y Sensor Rotation.
Se agregó
CameraInfo
y 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.onError
al 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.UseCaseError
porImageCapture.ImageCaptureError
. - Se cambió el nombre de
VideoCapture.UseCaseError
porVideoCapture.VideoCaptureError
.
- Se cambió el nombre de
Se agregó la API de
CameraControl
con la de Tap-to-FocusSe agregó una API a fin de obtener un objeto
CameraControl
de CameraX para una cámara, seleccionado por lentes frontales:CameraX.getCameraControl(LensFacing lensFacing)
Se agregaron
MeteringPointFactory
,MeteringPoint
,MeteringMode
yFocusMeteringAction
para 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
CameraControl
a 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
IllegalStateException
cuando 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 compromete las relaciones de resolución/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
setTargetAspectRatio
osetTargetResolution
). - 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_IMAGE
ahora 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
setLensFacing
para 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
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
InitializationException
contiene unaCameraUnavailableException
que se configurará comoListenableFuture
del 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 deCamera
sin 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
ProcessCameraProvider
durante la inicialización, se usa una configuración predeterminada y que la extensiónApplication
es 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-beta02
ycamera-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
@MainThread
a 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
LifeCycleCameraProvider
y 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
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
ExtensionsManager
para obtener un objetoExtensions
que 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
TranformationInfoListener
nueva. (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
DisplayOrientedMeteringPointFactory
toma una instancia deCameraInfo
en 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 usanDisplayOrientedMeteringPointFactory
también toman una instancia deCameraInfo
en lugar deCameraSelector
. (I400c1)- Se quitó
TextureViewMeteringPointFactory
.PreviewView
proporciona una API pública (createMeteringPointFactory()
) para crear una fábrica de puntos de medición independientemente de si usa unTextureView
o unSurfaceView
. (Ide693) - Se cambió el nombre de los modos de implementación
SURFACE_VIEW
/TEXTURE_VIEW
de PreviewView aPERFORMANCE
/COMPATIBLE
.PERFORMANCE
es el modoSURFACE_VIEW
anterior yCOMPATIBLE
es el modoTEXTURE_VIEW
anterior. (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
InitializationException
contiene unaCameraUnavailableException
que se configurará comoListenableFuture
del 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#getPreviewStreamState
que 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_3
con Android 7.0 y versiones anteriores. Se forzó el uso del modoImplementationMode#TEXTURE_VIEW
cuando la versión de Android es 7.0 o anterior. (I83e30, b/155085307) - Se quitó el parámetro
CameraInfo
dePreviewView#createSurfaceProvider()
; ahora,PreviewView
lo 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
PreviewView
cuando se deslizaba el fragmento fuera dePreview
y, 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 enUri
yOutputStream
. Se actualizó la app de prueba para usarUri
como 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.ScaleType
para establecer/obtener un tipo de escala con CameraView. (Ia8974, b/153014831) - Dale a
PreviewView
un 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
PreviewView
no 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-beta02
ycamera-lifecycle:1.0.0-beta02
.
Camera-View versión 1.0.0-alpha04
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_VIEW
conPreviewView
no funcione bien en algunos dispositivos, ya que laSurfaceView
que 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 deSurfaceView
vuelva 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 deCameraInfo
anulable que se usa para optimizar la vista previa medianteImplementationMode.SURFACE_VIEW
siempre 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
@UiThread
aPreviewView.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.ScaleType
y 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
PreviewView
en un diseño XML con el atributoimplementationMode
.Se agregó la API de
createMeteringPointFactory()
a PreviewView para admitir la conversión (x, y) enPreviewView
aMeteringPoint
(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-alpha04
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
ListenableFuture
deSurfaceRequest.provideSurface()
por unExecutor
y 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.Result
para realizar un seguimiento de cómo unaSurfaceRequest
utiliza laSurface
proporcionada (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
CameraXConfig
predeterminado (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-alpha04
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
TextureView
dePreviewView
ahora establece el tamaño deTextureView
como el tamaño de salida del sensor de la cámara antes de escalarlo para llenar suPreviewView
superior. 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 laPreviewView
como 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 laPreviewView
de modo que sea tan grande como el elemento superior (por ejemplo, mediante el atributo "match_parent
") (1204869).
Correcciones de errores
- Se actualizó
ImageCapture
para permitir que se guarden imágenes enUri
yOutputStream
. Se combinaron los métodostakePicture
sobrecargados en uno solo. Se actualizó la app de prueba para usarUri
como ejemplo canónico (Ia3bec). - El nombre de
Preview.PreviewSurfaceProvider
cambió porPreview.SurfaceProvider
. LosSurfaceProvider
ya no requieren que los desarrolladores creen su propioListenableFuture
y ahora se proporciona laSurface
a través de un objetoSurfaceRequest
nuevo. Se quitó el métodoPreview.getPreviewSurfaceProvider()
debido a su potencial de uso inadecuado cuandoPreview
se 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()
deCameraInfo
engetZoomState()
, 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.TextureViewImplementation
que 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
CameraSelector
como parámetro de entrada. Este debe ser el mismo elementoCameraSelector
que 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
PreviewView
para mostrar fácilmente el resultado del caso práctico de vista previa en una aplicación. Se puede incluir
PreviewView
en el diseño:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
proporciona un elementoPreviewSurfaceProvider
para 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
PreviewImageProcessorImpl
haya implementado las marcas de tiempo de forma correcta. - Se solucionó el error de prueba
ExtensionTest
en 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.