CameraX
Ce tableau répertorie tous les artefacts du groupe androidx.camera
.
Artefact | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
camera-camera2 | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-core | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-compose | - | - | - | 1.5.0-alpha04 |
camera-effects | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-extensions | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-feature-combination-query | - | - | - | 1.5.0-alpha04 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha04 |
camera-lifecycle | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-mlkit-vision | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-view | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.1 | - | - | 1.5.0-alpha04 |
Tests d'appareils
CameraX a été testée sur de nombreux appareils dans notre atelier. Pour afficher la liste des appareils actuellement utilisés dans l'atelier, consultez la section sur les appareils testés lors de l'atelier CameraX.
Déclarer des dépendances
Pour ajouter une dépendance à CameraX, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances des artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou module :
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // 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.5.0-alpha03" // 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}") }
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Compose version 1.0 pour le viseur de l'appareil photo
Version 1.0.0-alpha02
12 juin 2024
Publication d'androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
. La version 1.0.0-alpha02 contient ces commits.
Version 1.0.0-alpha01
14 mai 2024
Publication d'androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
. La version 1.0.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- Nouvelle bibliothèque. Cette bibliothèque introduit un composable de viseur Compose natif, qui peut être utilisé avec CameraX et Camera2. Le composable Viewfinder est compatible avec différents formats et la gestion des événements tactiles.
Viseur de l'appareil photo version 1.4
Version 1.4.0-alpha07
12 juin 2024
Publication d'androidx.camera:camera-viewfinder:1.4.0-alpha07
et d'androidx.camera:camera-viewfinder-core:1.4.0-alpha07
. La version 1.4.0-alpha07 contient ces commits.
Version 1.4.0-alpha06
14 mai 2024
Publication d'androidx.camera:camera-viewfinder:1.4.0-alpha06
et d'androidx.camera:camera-viewfinder-core:1.4.0-alpha06
. La version 1.4.0-alpha06 contient ces commits.
Modifications apportées à l'API
- Renommez les énumérations
ImplementationMode
deViewfinder
pour mieux refléter les implémentations sous-jacentes, et ajoutez des constantes fixes pourTransformationInfo.sourceRotation
. (Ic6149) - Ajout de
ZoomGestureDetector.ZoomEvent
pour encapsuler les états d'un geste de zoom. (I84cdf)
Version de la caméra 1.5
Version 1.5.0-alpha04
11 décembre 2024
Publication d'androidx.camera:camera-*:1.5.0-alpha04
. La version 1.5.0-alpha04 contient ces commits.
Modifications apportées à l'API
ImageCapture.Builder#setOutputFormat
etImageCaptureCapabilities#getSupportedOutputFormats
sont désormais des API stables (Ieb04a)- Ajoutez
VideoCapture.getResolutionInfo()
pour obtenir les informations de résolution lorsqu'unVideoCapture
est lié à un cycle de vie. (Icb478) PreviewView.getScreenFlash
etPreviewView.setScreenFlashOverlayColor
sont désormais des API stables. (I74fee)
Correction de bugs
- Résolution du problème d'échec de la capture sur l'appareil Vivo 1610 lors de la prise de photo avec flash dans l'obscurité. (I366f4)
- Correction du problème de désactivation inattendue de la lampe de poche après la capture d'une image sur le Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Résolution d'un problème sur les appareils Pixel Android 15, qui empêchait la capture d'images fixes en mode NUIT dans Extensions tant que l'appareil photo ne s'était pas mis au point sur un objet à proximité. (I228d4)
- Correction du problème de dysfonctionnement de la capture d'image fixe lorsque les extensions sont activées et que
VideoCapture
est associé. (I5c745) - Prise en charge de la capture d'images fixes
UltraHDR
pour les extensions si l'appareil le permet. (I48300) - Résolution du problème de synchronisation du flash pour la capture avec flash avec le ciblage
CameraEffect
des captures d'images sur les appareils TCL. (I7698c)
Version 1.5.0-alpha03
30 octobre 2024
Publication d'androidx.camera:camera-*:1.5.0-alpha03
. La version 1.5.0-alpha03 contient ces commits.
Modifications apportées à l'API
- Ajout d'API de format de sortie pour RAW et RAW + JPEG
ImageCapture
. La vérification des fonctionnalités de l'appareil est exposée dansImageCaptureCapabilities#getSupportedOutputFormats
.OUTPUT_FORMAT_RAW
permet de capturer des images RAW, au format Adobe DNG, etOUTPUT_FORMAT_RAW_JPEG
permet de capturer simultanément des images RAW et JPEG. La nouvelle APIImageCapture#takePicture
est utilisée pour la capture d'images simultanée. Elle doit fournir deuxOutputFileOptions
, le premier pour l'image RAW et le second pour l'image JPEG. (Ib0f3d)
Correction de bugs
- Résolution du problème de sous-exposition de l'aperçu et de la vidéo sur les appareils TCL lorsque
VideoCapture
est activé. (Id7a64) - Correction d'un problème qui empêchait d'obtenir les coordonnées de capteur correctes lorsque vous appelez
startFocusMetering
avecPreviewView.getMeteringPointFactory
lorsqu'un effet est activé ou lorsque quatre cas d'utilisation sont associés (partage de flux). (I916c5, b/345993685) - Correction d'un problème d'absence de déclenchement de l'événement
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
lors de l'enregistrement d'une vidéo et d'un espace de stockage insuffisant. (I35779, b/356399842)
Version 1.5.0-alpha02
2 octobre 2024
Publication d'androidx.camera:camera-*:1.5.0-alpha02
. La version 1.5.0-alpha02 contient ces commits.
Nouvelles fonctionnalités
- Nouvelles API permettant d'interroger les fonctionnalités de l'appareil photo compatibles avec l'appareil. Par exemple, vérifier si le HDR et le 60 FPS peuvent être activés en même temps. Il comprend deux artefacts: camera-feature-combination-query et camera-feature-combination-query-play-services.
Il s'agit d'une version compatible de l'API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
de camera2 avec des données supplémentaires fournies par le service Google Play.
Correction de bugs
- Résolution du problème de fréquence d'images cible
Preview/VideoCapture
sur les appareils de niveau LEGACY. La fréquence d'images cible définie via l'APIsetTargetFrameRate
ouCamera2Interop
était toujours écrasée par la valeur fournie parAeFpsRangeLegacyQuirk
. Avec ce correctif, la bibliothèque CameraX respectera la valeur définie via l'APIsetTargetFrameRate
ouCamera2Interop
. (Ie2d32) - Ajout de fonctionnalités de flash/lampe de poche/3A pour les captures d'images avec
CameraEffect
. Les captures d'images avecCameraEffect
doivent désormais avoir les mêmes traitements avant et après la capture (déclencheur du flash, convergence 3A, etc. le cas échéant) que la capture d'image sansCameraEffect
. (I5ff30) - Exclusion des tailles de sortie problématiques pour
ImageAnalysis
sur l'appareil Samsung SM-A057G. LorsqueImageAnalysis
utilise une résolution supérieure ou égale à 1 920 x 1 440, un problème d'aperçu noir se produit.ExcludedSupportedSizesQuirk
a été appliqué à l'appareil SM-A057G pour éviter le problème. (I63dfe, b/365877975) - Correction du problème de fréquence d'images cible
Preview/VideoCapture
lorsque le mécanisme de partage de flux est activé en interne pour partager un flux avecPreview
etVideoCapture
. (I4fdac) - Activation de la solution de contournement pour résoudre le problème de métadonnées d'image JPEG incorrectes sur les appareils Samsung S10e et S10+. Avec ce correctif, CameraX peut enregistrer l'image JPEG ou des objets Bitmap corrects peuvent être renvoyés lors de l'appel de la fonction
ImageProxy.toBitmap()
sur ces appareils si le problème de métadonnées d'image JPEG incorrectes se produit. (Iae493, b/356428987) - Désactivation des extensions pour la caméra arrière du Samsung A52s dont l'ID est 0, car des plantages natifs peuvent se produire lors de la capture d'images HDR et la configuration des sessions de capture peut échouer pour les modes BOKEH ou FACE_RETOUCH. (I03ec9, b/364152642)
- Correction du problème d'absence de déclenchement de l'événement
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE
lors de l'enregistrement d'une vidéo et d'espace de stockage insuffisant. (Ia5b4f, b/356399842) - Correction d'un problème qui empêchait la deuxième tentative d'enregistrement vidéo sur l'Oppo A5 (CPH1931). (I181d6)
Version 1.5.0-alpha01
4 septembre 2024
Publication d'androidx.camera:camera-*:1.5.0-alpha01
. La version 1.5.0-alpha01 contient ces commits.
Modifications apportées à l'API
- Fournir une API pour définir les paramètres de composition pour la capture vidéo simultanée de deux caméras. Les paramètres incluent la valeur alpha pour le mélange, le décalage dans les coordonnées X et Y, l'échelle de la largeur et de la hauteur de la fenêtre d'affichage du cadre de l'appareil photo. Le décalage, la largeur et la hauteur sont spécifiés en coordonnées normalisées de l'appareil. (Ia2b8a)
CameraProvider.getCameraInfo
est désormais une API officielle. (I901cd)- Ajout de l'API
PendingRecording.withAudioEnabled(boolean initialMuted)
pour contrôler l'état initial de la mise en sourdine. (I635c3, b/354829267)
Correction de bugs
- Correction du plantage qui se produisait lorsque
bindToLifecycle
était appelé avec unLifecycleOwner
détruit. (I6e6d8) - Correction de l'écran noir de l'aperçu de la caméra avant lors de l'association avec
VideoCapture
sur le Motorola Edge 20 Fusion. (I1fe88) - Optimisation de la configuration pour la détection des gestes de zoom dans
PreviewView
afin d'améliorer la fluidité. (I04ffc)
Version de l'application Appareil photo 1.4
Version 1.4.1
11 décembre 2024
Publication d'androidx.camera:camera-*:1.4.1
. La version 1.4.1 contient ces commits.
Correction de bugs
- Résolution d'un problème sur les appareils Pixel Android 15, qui empêchait la capture d'images fixes en mode NUIT dans Extensions tant que l'appareil photo ne s'était pas mis au point sur un objet à proximité. (I228d4)
- Correction du dysfonctionnement de
ImageCapture#takePicture
lorsque les extensions sont activées et queVideoCapture
est associé. (I5c745)
Version 1.4.0
30 octobre 2024
Publication d'androidx.camera:camera-*:1.4.0
. La version 1.4.0 contient ces commits.
Changements importants depuis la version 1.3.0
CameraX 1.4.0 regorge de nouveautés ! Récapitulatif :
Fonctionnalité principale: HDR 10 bits:
- Réalisez facilement de superbes photos et vidéos HDR.
- Compatible avec l'encodage HLG et HEVC 10 bits.
- Profitez de l'aperçu HDR 10 bits et interrogez les fonctionnalités de l'appareil.
- Fonctionne avec les images
UltraHDR
et les vidéos HDR sur un nombre croissant d'appareils.
Autres fonctionnalités intéressantes:
- Extensions Kotlin: ajout des fonctions de suspension
takePicture
etawaitInstance
. - Effets en temps réel: appliquez des effets tels que des filigranes et des mises en surbrillance d'objets.
- API CameraController: nouvelles commandes pour la configuration de la capture vidéo.
- Stabilisation de l'aperçu: interrogez les fonctionnalités de l'appareil et activez la stabilisation.
- Améliorations de la capture vidéo: contrôle plus précis de la qualité et accès à des résolutions plus élevées.
- Intégration des extensions CameraX: intégration parfaite avec
VideoCapture
et les nouvelles fonctionnalitésImageCapture
. - API Shutter Sound: vérifiez facilement les exigences régionales concernant le son de l'obturateur.
- Flash de l'écran: amélioration des photos par faible luminosité pour les caméras avant.
- API de métadonnées des extensions de l'appareil photo: API compatibles pour ajuster l'intensité des extensions et recevoir une notification du mode Extensions actuel dans
ExtensionMode#AUTO
. Pour en savoir plus sur les corrections de bugs, consultez nos annonces sur la version bêta et la version RC.
Version 1.4.0-rc04
16 octobre 2024
Publication d'androidx.camera:camera-*:1.4.0-rc04
. La version 1.4.0-rc04 contient ces commits.
Correction de bugs
- Correction d'un problème qui empêchait d'obtenir les coordonnées de capteur correctes lorsque vous appelez
startFocusMetering
avecPreviewView.getMeteringPointFactory
lorsqu'un effet est activé ou lorsque quatre cas d'utilisation sont associés (partage de flux). (I916c5, b/345993685)
Version 1.4.0-rc03
2 octobre 2024
Publication d'androidx.camera:camera-*:1.4.0-rc03
. La version 1.4.0-rc03 contient ces commits.
Correction de bugs
- Ajout de fonctionnalités de flash/lampe de poche/3A pour les captures d'images avec
CameraEffect
. Les captures d'images avecCameraEffect
doivent désormais avoir les mêmes traitements avant et après la capture (déclencheur du flash, convergence 3A, etc. le cas échéant) que la capture d'image sansCameraEffect
. (I5ff30) - Amélioration de la fluidité du zoom avec pincement dans
PreviewView
(I04ffc) - Dissocier le HDR Ultra de la capacité de sortie 10 bits, car la compatibilité avec le HDR Ultra ne nécessite plus que les appareils disposent d'une capacité de sortie 10 bits. (I96ff2, I0c3b3)
Version 1.4.0-rc02
18 septembre 2024
Publication d'androidx.camera:camera-*:1.4.0-rc02
. La version 1.4.0-rc02 contient ces commits.
Correction de bugs
- Correction du plantage qui se produisait lorsque
bindToLifecycle
était appelé avec unLifecycleOwner
détruit. (I6e6d8) - Ajout d'une animation de visibilité dans
ScreenFlashView
pourScreenFlash#apply
, qui corrige également les bugs dus à la finalisation asynchrone du changement de luminosité au bout d'un certain temps. (I37cdb) - Amélioration de la fluidité du zoom en ignorant les paramètres de zoom dans le framework sur les appareils compatibles.
Version 1.4.0-rc01
7 août 2024
Publication d'androidx.camera:camera-*:1.4.0-rc01
. La version 1.4.0-rc01 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'un
CameraInfo.getCameraInfo
expérimental pour fournir des informations spécifiques sur l'appareil photo sans avoir à lier des cas d'utilisation à l'appareil photo. (I550d1)
Modifications apportées à l'API
- Ajout des API
PreviewView.getScreenFlash
etPreviewView.setScreenFlashOverlayColor
pour les cas oùScreenFlashView
n'est pas ajouté explicitement. (I43945)
Correction de bugs
- Correction des problèmes d'exposition et de teinte de couleur lorsque l'image est capturée avec le flash activé en cas de faible luminosité et que le cas d'utilisation VideoCapture est lié. (Ic9814)
- Correction du problème qui empêchait d'obtenir un résultat lorsqu'une requête
takePicture
était interrompue avec les extensions activées, et qui pouvait entraîner l'échec de la requêtetakePicture
suivante. (Iae78f) - Correction d'un problème de fuite de mémoire qui se produit lorsque les extensions sont activées. (Iab276)
- Résolution d'un dysfonctionnement des extensions CameraX sur des appareils tels que le Pixel 7/8 et la gamme Samsung Galaxy S24. Ce problème, qui découle d'un problème de conversion
Camera2OutputConfigImpl
en mode version, est apparu après la mise à niveau d'AGP vers la version 8.5.1 et l'activation de la minification. (I99598, b/354824993)
Version 1.4.0-beta02
12 juin 2024
Publication d'androidx.camera:camera-*:1.4.0-beta02
. La version 1.4.0-beta02 contient ces commits.
Modifications apportées à l'API
- Comme pour
VideoCapture
, ajoutezsetMirrorMode
pour le cas d'utilisation "Preview" (Aperçu). Le mode miroir sera activé et désactivé pour le flux d'aperçu viaOutputConfiguration.setMirrorMode
à partir de l'API 33 et versions ultérieures. Pour les API plus anciennes, il n'aura aucun effet. (I821f4)
Correction de bugs
- Résolution du problème qui empêchait les applications de prendre des photos sur le Samsung Tab A8 lorsque
ImageCapture
sélectionne 1 920 x 1 080 sous la combinaisonUseCase
Preview
+VideoCapture
+ImageCapture
. (I5a463, b/336925549) - Correction : l'enregistrement persistant peut ne pas continuer après le changement de caméra. (Icb0a1)
Version 1.4.0-beta01
14 mai 2024
Publication d'androidx.camera:camera-*:1.4.0-beta01
. La version 1.4.0-beta01 contient ces commits.
Modifications apportées à l'API
- Ajout de
ZoomGestureDetector.ZoomEvent
pour encapsuler les états d'un geste de zoom. (I84cdf)
Correction de bugs
- Correction d'un bug qui faisait que la capture et le focus par appui ne prenaient pas en compte les valeurs de FPS/mode de stabilisation de la requête répétée, ce qui pouvait recréer une session de capture et entraîner des problèmes de latence ou un blocage de l'aperçu sur certains appareils. (I7dc0b)
- Correction d'un bug qui empêchait de sélectionner des résolutions élevées lorsque
CameraEffect
était activé sur certains appareils. (par exemple, 4 000 x 3 000 sur le Samsung A32 5G). (Ie3ed3, b/337336152) - Correction d'un plantage lors de la prise de photo avec Preview,
ImageCapture
etVideoCapture(UHD)
liés sur le Pixel 4XL avec l'API 29. (I5b288) - Compatibilité avec les appareils virtuels: le contexte transmis à
ProcessCameraProvider
conserve l'ID de l'appareil pour garantir le fonctionnement dans un environnement d'appareil virtuel. (I5ba48)
Version 1.4.0-alpha05
17 avril 2024
Publication d'androidx.camera:camera-*:1.4.0-alpha05
. La version 1.4.0-alpha05 contient ces commits.
Nouvelles fonctionnalités
- Conversion de
ProcessCameraProvider
en implémentation Kotlin. (I46d4f) - Ajout de fonctions de suspension
ImageCapture.takePicture
pour permettre de l'appeler de manière idiomatique en Kotlin. (I920be)
Modifications apportées à l'API
- Ajoutez des API de format de sortie à
ImageCapture
et la méthodegetSupportedOutputFormats
àImageCaptureCapabilities
pour interroger la fonctionnalité de l'appareil. La valeur par défaut du format de sortie estOUTPUT_FORMAT_JPEG
, qui capture les images SDR au format JPEG. Lorsque l'appareil est compatible avec l'Ultra HDR et que le format de sortie est défini surOUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX capture des images compressées Ultra HDR à l'aide du format d'image JPEG/R. Il est rétrocompatible avec le format JPEG SDR et prend en charge le rendu HDR des contenus. Cela signifie que sur les applications ou appareils plus anciens, les images s'affichent en tant que JPEG standard. Sur les applications et appareils qui ont été mis à jour pour prendre pleinement en charge le format, les images s'affichent en HDR. (I5de50) - Ajout de
PhysicalCameraInfo
dansCameraInfo
pour interroger les informations sur la caméra physique et ajout d'un setter/getter d'ID de caméra physique dansCameraSelector
(Ic5b90) - Remplacement de
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
parImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. La valeur de la constante reste la même. Cela permet de regrouper toutes les constantes au même endroit. (I890bb) - La nouvelle API
RetryPolicy
permet aux développeurs de personnaliser le comportement de nouvelle tentative pour l'initialisation de CameraX. (I36dd2) - Activation de la création d'un objet
ImageCaptureLatencyEstimate
pour faciliter la testabilité (Iaba99) - Ajoutez un
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. Dans ce cas,MlKitAnalyzer
renvoie les coordonnées dans le système de coordonnées du capteur de l'appareil photo. (I3ec61) - API de métadonnées d'extensions exposées. Les nouvelles interfaces
CameraExtensionsInfo
etCameraExtensionsControl
permettent aux applications de surveiller et d'ajuster les paramètres de la force de l'extension. Les applications peuvent obtenir l'instanceCameraExtensionsInfo
ouCameraExtensionsControl
via les méthodesExtensionsManager#getCameraExtensionsInfo()
ouExtensionsManager#getCameraExtensionsControl()
nouvellement ajoutées. (I28e1a) - Ajout de
ProcessCameraProvider.awaitInstance
, qui est une version suspendue deProcessCameraProvider.getInstance
(Ib22b9) - Ajout d'une API
PreviewView#getSensorToViewTransform()
. La matrice représente la transformation des coordonnées du capteur de la caméra en coordonnées dePreviewView
. Vous pouvez l'utiliser pour transformer les coordonnées d'uneUseCase
en une autre. Par exemple, transformer les coordonnées des objets détectés dansImageAnalysis
en superpositionPreviewView
. (I947ab) - Rendre l'API
camera-viewfinder-core
plus générique afin qu'elle puisse être utilisée parcamera-viewfinder
etcamera-viewfinder-compose
. (I1e295) - Ajoutez la fonction
getSurface
àViewfinderSurfaceRequest
. (I781a0) - Utilisez
camera-viewfinder-core
danscamera-viewfinder
et abandonnezViewfinderSurfaceRequest
etCameraViewfinder
. (I6198c) - Ajout de
ZoomGestureDetector
qui interprète les gestes de mise à l'échelle spécifiquement configurés pour l'activité de pincement pour zoomer. (Ifafbf)
Correction de bugs
- Correction du problème de sélection de la résolution
ImageAnalysis
lié au paramètre de résolution cible par défaut de l'analyseur: la résolution cible était incorrectement définie sur 640 x 480, même si les applications avaient défini un autre paramètre de résolution par défaut de l'analyseur. Si les applications rencontrent ce problème (versions 1.3.0 à 1.3.2) et ne peuvent pas passer à une version plus récente contenant la solution, vous pouvez contourner le problème en définissant directement unResolutionSelector
avec la résolution préférée et unAspectRatioStrategy
correspondant à l'UseCase
ImageAnalysis
. (I81f72, b/330091012) - Correction d'un problème qui pouvait empêcher l'exécution de la requête
takePicture
mise en file d'attente si la requête en cours échouait. (Ie0801) - Application de la vérification des données JPEG non valides aux appareils Vivo X60 et X60 Pro. Cela peut résoudre le problème d'image anormalement grande sur ces appareils. (I82247, b/288828159)
- Correction du problème de métadonnées d'image JPEG incorrectes sur les appareils Samsung A24. Avec ce correctif, CameraX peut enregistrer l'image JPEG ou renvoyer des objets Bitmap corrects lors de l'appel de la fonction
ImageProxy.toBitmap()
sur les appareils Samsung A24. (I8d6eb, b/309005680) - Appliquer la vérification des données JPEG non valides à tous les appareils Samsung si l'image capturée est supérieure à 10 Mo. Cela peut résoudre le problème d'image anormalement grande sur les appareils Samsung. (Ic2a65, b/288828159)
- Suppression de la prise en charge de
ImageAnalysis
dans les extensions CameraX, car de nombreuses implémentations d'extensions d'OEM ne fonctionnent pas bien avecImageAnalysis
et peuvent entraîner des problèmes incohérents. (I2d926)
Version 1.4.0-alpha04
24 janvier 2024
Publication d'androidx.camera:camera-*:1.4.0-alpha04
. Liste des commits de la version 1.4.0-alpha04
Nouvelles fonctionnalités
- Nouvel artefact: camera-effects: bibliothèque permettant d'appliquer des effets en temps réel à la sortie CameraX, y compris
Preview
,VideoCapture
et/ouImageCapture
. Cet artefact contient des implémentations OpenGL de l'APICameraEffect
qui manipulent efficacement la sortie de la caméra. OverlayEffect
: pour dessiner des superpositions avec l'API Canvas d'Android. Cela permet à l'application d'appliquer un filigrane ou de mettre en évidence les objets détectés sur les sorties de l'appareil photo.- API
DynamicRange
pour le cas d'utilisation "Aperçu" : la plage dynamique peut désormais être définie sur le cas d'utilisation "Aperçu", indépendamment du cas d'utilisation "Vidéo". Cela permet d'utiliser des plages dynamiques HDR telles que HLG10 pour l'aperçu uniquement. De nouvelles API sont également disponibles dansCameraInfo
pour interroger les plages dynamiques compatibles avec chaque appareil photo.
Modifications apportées à l'API
ScreenFlashUiCompleter
a été renomméScreenFlashListener
etScreenFlashUiCompleter#getExpirationTimeMillis
a été déplacé vers le paramètreexpirationTimeMillis
deScreenFlash#apply
. (I13944)- Ajout de nouvelles API permettant de définir la plage dynamique sur le cas d'utilisation "Aperçu" et d'interroger les plages dynamiques compatibles avec chaque appareil photo. Cela permet d'utiliser les plages dynamiques HDR, telles que HLG10, avec le seul cas d'utilisation "Aperçu", sans avoir à lier un
VideoCapture
en même temps. (If25e3) getMirroring()
renommé enisMirroring()
(I47063)- Ajout de la prise en charge de l'estimation de la latence de capture d'image fixe en temps réel dans CameraX. Les extensions d'appareil photo permettent aux applications d'utiliser une API qui fournit une estimation de la durée d'une capture. L'estimation tient compte des conditions environnementales actuelles, de l'état de la caméra et inclut le temps passé à traiter les requêtes de capture multicadres, ainsi que le temps supplémentaire nécessaire à l'encodage des tampons traités, le cas échéant. (I05c3a)
ScreenFlashUiControl
a été renomméScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
ScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
ScreenFlash#clear
et la méthodegetScreenFlashUiApplyTimeoutSeconds
a été ajoutée au lieu d'exposerSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
directement. (Iccdd0)
Correction de bugs
- Correction d'une fuite de mémoire qui empêchait la libération des activités ou des fragments lorsque les extensions sont activées. (I14215)
- Correction du problème qui faisait que
getZoomRatio
renvoyait une valeur incorrecte lors de l'application d'un facteur de zoom croissant. (I4aa0d, b/317543616) - L'événement
ImageCapture#ScreenFlash#clear
est appelé immédiatement lorsqueImageCapture
n'est pas lié ou que la caméra est fermée. Il corrige également certains bugs où il n'est jamais appelé en raison de captures qui ne se terminent pas correctement dans ces scénarios. (If99f9) - Correction du plantage qui se produit lorsque le cycle de vie est arrêté avant la fin de la requête
takePicture
. (Idf017, b/306202751) - Résolution du problème d'affichage noir de l'aperçu de l'appareil photo lorsque les extensions sont activées sur certains appareils (I1ffd0)
- Correction de la durée incorrecte de l'enregistrement vidéo sur les appareils équipés du SoC Snapdragon 778G. (If6aa7, b/316057919)
Version 1.4.0-alpha03
13 décembre 2023
Publication d'androidx.camera:camera-*:1.4.0-alpha03
. Liste des commits de la version 1.4.0-alpha03
Nouvelles fonctionnalités
- Ajout de
CameraInfo.mustPlayShutterSound
pour indiquer si un son de déclencheur doit être diffusé conformément aux restrictions régionales. (Ifda84) - Ajout de
OnImageCapturedCallback.onCaptureStarted
etOnImageSavedCallback.onCaptureStarted
pour envoyer une notification lorsque la caméra a commencé à exposer un frame. À ce stade, nous vous recommandons de lire le son ou l'animation du déclencheur. (Ic49b3) - Ajout de la prise en charge de la fonctionnalité Flash de l'écran dans CameraX pour la capture d'images avec la caméra avant. CameraX s'occupera de la gestion de l'API côté framework et synchronisera le timing avec les modifications de l'UI de l'application si nécessaire (par exemple, déclencheur de précapture AE après modification de la couleur/de la luminosité de l'écran de l'application). Les applications n'auront qu'à ajouter leurs implémentations côté UI dans l'interface
ScreenFlashUiControl
fournie à CameraX. (I8ae84) - Ajout de la prise en charge de l'implémentation côté UI de la fonctionnalité Flash de l'écran dans CameraX. Les applications pourront obtenir une implémentation
ImageCapture.ScreenFlashUiControl
de base à partir dePreviewView
ou de la nouvelleScreenFlashView
, qui ajoutera une vue superposée monochrome et maximisera la luminosité de l'écran lors de la capture de photo avec flash de l'écran. (I1810e)
Modifications apportées à l'API
- Compatibilité avec les nouvelles fonctionnalités d'extensions(postview et progression du processus de capture): ajout d'API
ImageCapture#getImageCaptureCapabilities()
permettant aux applications d'interroger les fonctionnalités du rappel de postview et de progression du processus de capture. Les applications peuvent activer la postview à l'aide deImageCapture.Builder#setPostviewEnabled()
. Vous pouvez sélectionner la taille post-vue à l'aide deImageCapture.Builder#setPostviewResolutionSelector()
. Lorsque vous appeleztakePicture()
,onPostviewBitmapAvailable
etonCaptureProcessProgressed
peuvent être implémentés dansOnImageSavedCallback
ouOnImageCapturedCallback
pour obtenir la notification de post-visionnage et de progression du traitement, le cas échéant. (I5cd88) - API permettant de calculer la transformation des coordonnées du capteur vers le tampon actuel, avec un indicateur indiquant si la surface contient les informations d'orientation de la caméra. (I59096)
- Exposez l'API pour interroger
PreviewCapabitlity
dans PreviewUseCase
. (Ie5b6c) - Ajout d'API pour prendre en charge davantage de qualités pour
VideoCapture
.Recorder.Builder#setVideoCapabilitiesSource(int)
peut être utilisé avecVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
pour créer une instanceRecorder
compatible avec plus de qualités queVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Un cas d'utilisation courant est celui où l'application s'efforce d'enregistrer des vidéos UHD dans la mesure du possible, mais que leCamcorderProfile
de l'appareil n'inclut pas de paramètres UHD, même si le codec est capable d'enregistrer des vidéos UHD. (Iedbe2, b/263961771) - Ajoutez un getter/setter de format de sortie
ImageAnalysis
àCameraController
. (I9a96c, b/308240643)
Correction de bugs
- Dans Appareil photo
1.3.1
: amélioration des performances deProcessCameraProvider#bindToLifecycle()
. Le changement majeur consiste à optimiser le processus d'identification des combinaisons de tailles les plus adaptées pourUseCases
. Les résultats optimaux varient en fonction des combinaisonsUseCase
spécifiques et du nombre de tailles de sortie compatibles pour les appareils cibles. (I454f2) - Autorisez l'utilisation de
VideoCapture
lorsque les extensions sont activées. (I91f32) - Correction d'un problème lié aux images JPEG capturées de grande taille sur les appareils de la série Samsung A71 et M51. Les images JPEG capturées contiennent des données de remplissage redondantes de zéros dans le segment de données compressées JFIF. Cela entraîne une taille de fichier extrême pour les images capturées. Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I01afc, b/288828159)
- Désactivez la prise en charge de
ImageAnalysis
sur les Pixel pour éviter le bug sur les Pixel qui renvoie accidentellement les tailles compatibles avecImageAnalysis
non vides. (I7ec31) - Correction d'un problème de performances qui entraînait une augmentation de la charge du processeur et de la consommation d'énergie lorsque les extensions étaient activées. (Ibdccb)
- Ajout du Snapdragon 480 à la
CameraUseInconsistentTimebaseQuirk
. Cela corrige un problème sur Android 12 pour les appareils utilisant ce chipset, où l'audio des enregistrements est décalé par la durée pendant laquelle l'appareil est suspendu. (I58010)
Version 1.4.0-alpha02
18 octobre 2023
Publication d'androidx.camera:camera-*:1.4.0-alpha02
. Liste des commits de la version 1.4.0-alpha02
Modifications apportées à l'API
- Renommez l'API en
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
et renommez l'argument. (I72370) - Ajout d'API pour interroger les fonctionnalités de l'appareil et activer la stabilisation de la vidéo/de l'aperçu. (I87544)
- Fournir une API pour personnaliser le délai maximal de réessai de l'ouverture de l'appareil photo. (I0c642)
- Publication de
ProcessCameraProvider.shutdownAsync
en tant qu'API de test publique pour permettre d'utiliser le fournisseur d'appareil photo de processus dans des suites de test qui peuvent avoir besoin d'initialiser CameraX de différentes manières entre les tests. (I9eca7) - Ajout d'API permettant de configurer la plage dynamique, la fréquence d'images et le mode miroir de la capture vidéo. (Ifb8f7)
- Abandon de
OutputSize
et remplacement parResolutionSelector
.ResolutionSelector
est un moyen plus complet de sélectionner des résolutions, et il est compatible avec l'API camera-core. (I93abd, b/286801438)
Correction de bugs
- Correction du problème d'aperçu noir sur le Samsung Galaxy S23 Ultra 5G lorsque les extensions Bokeh ou le retouche du visage sont activés avec
ImageAnalysis
sur la caméra arrière. (I2e8b1) - Résolution des problèmes d'aperçu et d'étirement de
VideoCapture
sur le Moto E5 Play. (73dce2)
Version 1.4.0-alpha01
20 septembre 2023
Publication d'androidx.camera:camera-*:1.4.0-alpha01
. Liste des commits de la version 1.4.0-alpha01
Modifications apportées à l'API
- Ajout d'une nouvelle API pour accéder aux informations d'amplitude audio pendant l'enregistrement. (Id4925)
Correction de bugs
- Améliorez la stabilité des extensions en vous assurant que les événements d'initialisation et de désinitialisation sont déclenchés dans le bon ordre. (Ib3b8e)
- Correction de l'échec de la configuration de la session de capture en cas de dépassement de la combinaison de surfaces compatible en raison de l'ajout d'une surface répétitive supplémentaire en interne. (Id718c)
- Correction d'un problème d'image JPEG capturée de grande taille sur l'appareil Vivo S16. Les images JPEG capturées contiennent des données de remplissage de zéros redondantes dans le segment de données compressées JFIF. Cela entraîne une taille de fichier importante pour les images capturées. Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I79505, b/299069235)
- Résolution du problème qui empêchait
ImageAnalysis
d'être associé àImageCapture
et à Preview lorsque certains modes d'extension étaient activés sur certains appareils. La correction renvoie la valeur correcte lorsque les applications interrogent la disponibilité deImageAnalysis
viaExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Mise à jour de JavaDoc pour correspondre au comportement. Au lieu de se terminer immédiatement,
#setZoomRatio
,#setLinearZoom
et#enableTorch
attendent que l'appareil photo soit prêt. Ajout d'informations sur l'obtention du champ de vision maximal avec l'API#takePicture
. (I23588)
Version 1.3
Version 1.3.4
12 juin 2024
Publication d'androidx.camera:camera-*:1.3.4
. La version 1.3.4 contient ces commits.
Correction de bugs
- Correction du problème qui faisait que
getZoomRatio
renvoyait une valeur incorrecte lors de l'application d'un facteur de zoom croissant. (I4aa0d, b/317543616) - Correction du problème de non-utilisation des valeurs de FPS/mode de stabilisation des requêtes répétées pour la capture d'image fixe/la mise au point par appui, ce qui pouvait recréer la session de capture et entraîner des problèmes de latence ou le blocage de l'aperçu sur certains appareils. (I7dc0b)
- Correction du problème qui entraînait une valeur inférieure pour la fréquence d'images lors de l'appel de
setTargetFrameRate
avecFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
Version 1.3.3
17 avril 2024
Publication d'androidx.camera:camera-*:1.3.3
. La version 1.3.3 contient ces commits.
Correction de bugs
- Correction du problème de sélection de la résolution
ImageAnalysis
lié au paramètre de résolution cible par défaut de l'analyseur: la résolution cible était incorrectement définie sur 640 x 480, même si les applications avaient défini un autre paramètre de résolution par défaut de l'analyseur. Si les applications rencontrent ce problème (versions 1.3.0 à 1.3.2) et ne peuvent pas passer à une version plus récente contenant la solution, vous pouvez contourner le problème en définissant directement unResolutionSelector
avec la résolution préférée et unAspectRatioStrategy
correspondant à l'UseCaseImageAnalysis
. (I81f72, b/330091012)
Version 1.3.2
6 mars 2024
Publication d'androidx.camera:camera-*:1.3.2
. La version 1.3.2 contient ces commits.
Correction de bugs
- Correction d'un problème de métadonnées JPEG sur les appareils Samsung A24. CameraX enregistre désormais les images avec précision, et la fonction
ImageProxy.toBitmap()
renvoie les objets Bitmap appropriés. (I8d6eb, b/309005680) - Suppression de l'option de résolution 9 280 x 6 944 sur les appareils Redmi Note 9 Pro en raison de problèmes. (Ia23da)
Version 1.3.1
13 décembre 2023
Publication d'androidx.camera:camera-*:1.3.1
. Liste des commits de la version 1.3.1
Correction de bugs
Amélioration des performances de ProcessCameraProvider#bindToLifecycle()
. Le changement majeur consiste à optimiser le processus d'identification des combinaisons de tailles les plus adaptées pour UseCases
. Les résultats optimaux varient en fonction des combinaisons UseCase
spécifiques et du nombre de tailles de sortie compatibles pour les appareils cibles. (I454f2)
Voici quelques résultats de référence pour différents scénarios:
Quatre
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: environ 430 à 60 ms
- Samsung Galaxy S23 Ultra: environ 540 ms à 45 ms
- Samsung A53 5G: environ 115 ms à 70 ms
Trois
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: environ 9 à 7 ms
- Samsung Galaxy S23 Ultra: environ 6 à 5 ms
- Samsung A53 5G: environ 32 à 12 ms
Ajout du Snapdragon 480 à la
CameraUseInconsistentTimebaseQuirk
. Cela corrige un problème sur Android 12 pour les appareils utilisant ce chipset, où l'audio des enregistrements est décalé par la durée pendant laquelle l'appareil est suspendu. (I58010)
Version 1.3.0
18 octobre 2023
Publication d'androidx.camera:camera-*:1.3.0
. Liste des commits de la version 1.3.0
Changements importants depuis la version 1.2.0
- Fonctionnalités vidéo, y compris le HDR 10 bits, le recadrage, le miroir/non miroir, la mise en sourdine/réactivation du son, le paramètre du débit d'images, etc.
- Double caméra simultanée
- Bibliothèque d'effets
- Sélecteur de résolution
- Sélection de la caméra ultra grand-angle et de la caméra téléobjectif
- Changement de caméra pendant l'enregistrement vidéo (fonctionnalité expérimentale)
Version 1.3.0-rc02
20 septembre 2023
Publication d'androidx.camera:camera-*:1.3.0-rc02
. Liste des commits de la version 1.3.0-rc02
Correction de bugs
- Améliorez la stabilité des extensions en vous assurant que les événements d'initialisation et de désinitialisation sont déclenchés dans le bon ordre. Cela a permis de résoudre certains problèmes d'aperçu noir lors du changement de mode Extensions ou de caméra. (Iddaac)
- Correction du problème qui empêchait
ImageAnalysis
d'être associé àImageCapture
et à Preview lorsque certains modes d'extension étaient activés sur certains appareils. La correction renvoie la valeur correcte lorsque les applications interrogent la disponibilité deImageAnalysis
viaExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Correction du problème de synchronisation du son et de la vidéo enregistrés lorsque le mode de duplication était activé sur le Xiaomi Poco X3 NFC. (I20b4c)
Version 1.3.0-rc01
23 août 2023
Publication d'androidx.camera:camera-*:1.3.0-rc01
. Liste des commits de la version 1.3.0-rc01
Modifications apportées à l'API
- Ajout de
PendingRecording.asPersistentRecording
pour permettre à un enregistrement d'enregistrer en continu alors que leVideoCapture
auquel son enregistreur est associé est redirigé. (I517c6)
Correction de bugs
- Correction d'un plantage lorsque la diffusion est partagée avec
VideoCapture
et Aperçu. Correction d'un problème d'écran noir sur les anciens appareils lorsque le partage de flux est activé. - Correction d'un problème d'image JPEG capturée de grande taille sur les appareils de la série Samsung S7 (SM-G930T, SM-G930V). Les images JPEG capturées contiennent des données de remplissage de zéros redondantes dans le segment de données compressées JFIF. Cela entraîne une taille de fichier importante pour les images capturées. Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I407b0, b/288828159)
- Correction d'un problème d'image JPEG capturée de grande taille sur les appareils de la série Samsung S22 (SM-S901B, SM-S901B/DS) et S22+ (SM-S906B). Les images JPEG capturées contiennent des données de remplissage redondantes de zéros dans le segment de données compressées JFIF. Cela entraîne une taille de fichier importante d'environ 13 Mo pour les images capturées sur l'appareil S22 SM-S901B/DS. Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I73be9, b/288828159)
- Résolution du problème lié aux images JPEG de grande taille capturées sur les appareils de la série Samsung A5, A52, A70 et A72. Les images JPEG capturées contiennent des données de remplissage redondantes de zéros dans le segment de données compressées JFIF. Cela entraîne une taille de fichier extrême pour les images capturées (par exemple, environ 32 Mo ou même 96 Mo). Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I97c4d, b/288828159)
- Correction du plantage natif lors de la prise de vue avec les extensions activées (I698f5)
Version 1.3.0-beta02
26 juillet 2023
Publication d'androidx.camera:camera-*:1.3.0-beta02
. Liste des commits de la version 1.3.0-beta02.
Correction de bugs
- Utilisation de la lampe de poche comme flash pour les variantes Pixel 4 et 5 afin d'améliorer la qualité des prises de vue en basse lumière (I56ff5, b/280221967)
- Correction d'un problème d'image JPEG capturée de grande taille sur les appareils de la série Samsung A5 (2017). Les images JPEG capturées contiennent des données de remplissage redondantes de zéros dans le segment de données compressées JFIF. La taille de fichier des images capturées est d'environ 32 Mo. Ces données de remplissage par zéro redondantes seront supprimées pour que les images capturées aient des tailles de fichiers d'image normales. (I29837, b/288828159)
- Correction du problème de non-déclenchement correct de la nouvelle tentative en cas d'échec de la capture sur les appareils problématiques mentionnés dans
CaptureFailedRetryQuirk
. (I7b589)
Version 1.3.0-beta01
21 juin 2023
Publication d'androidx.camera:camera-*:1.3.0-beta01
. Liste des commits de la version 1.3.0-beta01
Modifications apportées à l'API
- Modification du nom de la fonction
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
ensetAllowedResolutionMode
et des constantesResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
enPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8) - Suppression des API obsolètes
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
etVideoCapture.setTargetRotationDegrees(int)
. (Id8e77) - La classe
DynamicRange
représente la plage dynamique des images. Vous pouvez l'utiliser pour sélectionner des formats HDR comme sortie deVideoCapture
àVideoCapture.Builder#setDynamicRange()
. (Ib0377) - Ajout d'une API
isImageAnalysisSupported
àExtensionsManager
, qui permet aux applications de déterminer si un cas d'utilisationImageAnalysis
peut être lié avec Preview etImageCapture
lorsque les extensions sont activées. (I1bc63) - La nouvelle classe
VideoCapabilities
obtenue à partir deRecorder
peut être utilisée pour interroger les plages dynamiques et les qualités compatibles pour l'enregistrement vidéo sur l'appareil. Les méthodesgetSupportedQualities()
etisQualitySupported()
deQualitySelector
sont obsolètes. Veuillez utiliser les méthodesgetSupportedQualities()
etisQualitySupported()
deVideoCapabilities
à la place. (I04014) CameraController#setVideoCaptureTargetQuality()
est renommésetVideoCaptureQualitySelector
et prend l'argumentQualitySelector
, ce qui offre plus de souplesse pour la configuration de la qualité vidéo.CameraController#getVideoCaptureTargetQuality()
est remplacé pargetVideoCaptureQualitySelector
. (I520ed)- Suppression de l'annotation expérimentale pour les fonctionnalités vidéo. Les fonctionnalités vidéo sont désormais stables. (I1a113)
Correction de bugs
- Utilisation de la lampe de poche comme flash sur les modèles Samsung SM-A320 pour améliorer la vitesse et la qualité de l'image capturée dans des conditions de faible luminosité. (I6a022, b/286190938)
- Ajout de la prise en charge du format
ImageFormat.JPEG
pourImageProxy.toBitmap()
. Si la matrice d'octets JPEG ne peut pas être décodée, une exceptionUnsupportedOperationException
est générée. (I81958, b/282057603)
Version 1.3.0-alpha07
24 mai 2023
Publication d'androidx.camera:camera-*:1.3.0-alpha07
. Liste des commits de la version 1.3.0-alpha07
Nouvelles fonctionnalités
- La nouvelle API
VideoCapture.Builder# setTargetFrameRate(Range)
permet de capturer des enregistrements vidéo à d'autres fréquences d'images que celles par défaut de l'appareil. Vous pouvez interroger les fréquences d'images disponibles pour les enregistrements via la nouvelle APICameraInfo#getSupportedFrameRates()
.
Modifications apportées à l'API
- Les constantes
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
ont été rebaptiséesALLOWED_RESOLUTIONS_NORMAL
/SLOW
, et le nom de la fonctionsetHighResolutionEnabledFlag
du générateur a été renommésetAllowedResolutionMode
. (Iae817) CameraInfo#getSupportedFrameRateRanges()
renvoie désormais unSet
au lieu d'unList
pour mieux indiquer que les plages ne sont pas ordonnées. (I02f43)- Ajout d'un écouteur d'erreur à
CameraEffect
pour gérer les erreurs non récupérables (Ice471) - Ajout d'un constructeur public dans
ResolutionInfo
pour améliorer la testabilité (If6d1c) - Ajout d'une API
UseCase.snapToSurfaceRotation(int)
pour remplacer l'utilisation desetTargetRotationDegrees
et abandon des APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
etVideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - Ajout des API
Preview#getTargetFrameRate
etPreview.Builder#setTargetFrameRate
pour pouvoir définir et récupérer la fréquence d'images cible pour le cas d'utilisation "Aperçu" (If4f22). VideoRecordEvent.Finalize
se terminera désormais avec le code d'erreurERROR_RECORDING_GARBAGE_COLLECTED
lorsque l'objetRecording
sera arrêté en raison de la collecte des déchets. (Iba974)
Correction de bugs
- Correction de
NullPointerException
lorsque les tailles de sortie mises en cache dansStreamConfigurationMapCompat
sont nulles. (Idf124, b/282025204) - Résolution du problème qui empêchait
Preview.setSurfaceProvider(null)
de mettre en pause l'aperçu dans les extensions (Ia903e) - Correction d'un problème qui entraînait le déclenchement de
ConcurrentModificationException
lors de l'ouverture de l'appareil photo lorsqueVideoCapture
était lié. (Ic8ac4)
Version 1.3.0-alpha06
19 avril 2023
Publication d'androidx.camera:camera-*:1.3.0-alpha06
. Liste des commits de la version 1.3.0-alpha06.
Nouvelles fonctionnalités
- La caméra simultanée est une nouvelle fonctionnalité introduite à partir d'Android 11. Elle permet de diffuser simultanément des images d'appareils photo. Par exemple, elle permet à un appareil d'utiliser simultanément la caméra avant et la caméra arrière. CameraX n'est actuellement compatible qu'avec deux caméras simultanées, ce qui permet à deux caméras de fonctionner en même temps, avec au maximum deux {@link UseCase} liés pour chacune. La résolution maximale est de 720p ou 1440p. Pour en savoir plus, consultez CameraManager#getConcurrentCameraIds().
- Présentation de la nouvelle API
ResolutionSelector
, qui couvre les fonctionnalités suivantes :- Les applications peuvent spécifier des stratégies d'aspect et de résolution pour sélectionner la meilleure résolution en fonction de leurs besoins.
- Tous les paramètres de taille et de format sont exprimés dans les coordonnées du capteur de l'appareil photo.
- Les applications peuvent implémenter un filtre de résolution personnalisé pour organiser les tailles compatibles dans l'ordre souhaité.
- Les applications peuvent également activer la capture haute résolution pour obtenir des images de meilleure qualité. Toutefois, veuillez noter que l'utilisation d'une résolution élevée peut ralentir le processus de capture.
- Ajout des API de mise en miroir
VideoCapture
. Les vidéos enregistrées parVideoCapture
ne sont pas mises en miroir par défaut. Toutefois, l'aperçu de la caméra avant est mis en miroir par défaut. Les API de mise en miroirVideoCapture
permettent d'aligner l'aperçu de l'appareil photo lorsque vous utilisez la caméra avant. Il existe troisMirrorMode
,OFF
,ON
etON_FRONT_ONLY
. Pour aligner l'aperçu de la caméra, il est recommandé d'utiliserON_FRONT_ONLY
, ce qui signifie que la mise en miroir n'est pas activée pour la caméra arrière, mais l'est pour la caméra avant.
Modifications apportées à l'API
- Exposition de la nouvelle API
ResolutionSelector
. Les applications peuvent spécifier des stratégies de format et de résolution à l'aide de règles de remplacement ou d'un filtre de résolution personnalisé pour obtenir les résultats souhaités. Les applications peuvent spécifier un indicateur pour activer la capture haute résolution. Cela permettra à CameraX de sélectionner des résolutions plus élevées lorsque vous prenez des photos ou des vidéos. Toutefois, veuillez noter que l'utilisation d'une résolution élevée peut ralentir le processus de capture. (Ibed95) - Les plages de FPS compatibles avec l'algorithme AE peuvent désormais être interrogées via
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f) - Remplacez les noms de toutes les méthodes de fréquence d'images par "FrameRate". Correction de l'erreur Javadoc dans
VideoCapture#getTargetFrameRate()
(I83304) - Abandon de l'ancienne API
setTargetAspectRatio
etsetTargetResolution
. Veuillez utiliser la nouvelle APIResolutionSelector
à la place. (I542c3) - Ajout d'API publiques pour la double caméra simultanée, y compris :
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
etConcurrentCameraConfig
,SingleCameraConfig
etConcurrentCamera
(Iab1c1)
ImageProcessor.Response#getOutputImage
a été défini comme NonNull (Ib9c60).- Ajout d'API de mise en miroir
VideoCapture
, y comprisVideoCapture.Builder.setMirrorMode(int)
etVideoCapture.getMirrorMode()
. Les API sont utiles pour les applications qui exigent que l'enregistrement vidéo soit cohérent avec le comportement d'aperçu de l'appareil photo courant, c'est-à-dire que l'aperçu de la caméra arrière n'est pas mis en miroir, mais que l'aperçu de la caméra avant l'est. (I713b6, b/194634656) - Ajout de l'API
setTargetFrameRate()
dansVideoCapture.Builder
et de l'APIgetTargetFramerate()
dansVideoCapture
(I109d4) - Faites en sorte que
SurfaceOutput
étend Closable et masquez le constructeur public de SurfaceOutput.Event
. (I60ea8) - Ajout de
Recording.mute
pour activer ou désactiver dynamiquement le son d'un enregistrement en cours de traitement.RecordingStats
contientAudioStats.AUDIO_STATE_MUTED
lorsque l'enregistrement en cours de traitement est mis en sourdine explicitement. (Ie17fc) - Le paramètre
#setEffects()
a été défini comme non nul. Ajout d'une API#clearEffects()
pour effacer les effets. L'application doit appeler#clearEffects()
pour supprimer les effets. (I4b4d9) - Ajout d'un deuxième constructeur pour
ViewfinderSurfaceRequest.Builder
afin qu'il accepte un compilateur pour le constructeur de copie (I621a7)
Correction de bugs
- Correction du problème qui entraînait le plantage des applications qui appelaient l'API Extensions lors de la fermeture de l'appareil photo (Ib27e5)
- Correction d'un problème qui empêchait
VideoCapture
de fonctionner avec la caméra avant sur certains appareils. Par exemple, sur le Samsung Galaxy S23 et le Xiaomi 2107113SG. (Ibec7e, b/270656244) - Correction du problème qui empêchait de prendre des photos à l'aide de File dans le dossier public de l'espace de stockage externe sous Android 10 ou version ultérieure. Notez qu'avec Android 10, prendre des photos à l'aide de File dans le dossier public de l'espace de stockage externe nécessite également de définir
requestLegacyExternalStorage
sur "true" dans la balise d'application. (I11b2c) - Correction d'un plantage
RejectedExecutionException
dansDefaultSurfaceProcessor
. Le plantage peut se produire lorsqueVideoCapture
est lié et que l'activité est mise en pause. (Idb46a, b/273713906)
Version 1.3.0-alpha05
22 mars 2023
Publication d'androidx.camera:camera-*:1.3.0-alpha05
. Liste des commits de la version 1.3.0-alpha05.
Modifications apportées à l'API
- Ajout d'API de rotation
VideoCapture
, y comprisVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
etVideoCapture.getTargetRotation()
. Les API sont utiles pour les applications qui verrouillent l'orientation de l'appareil.ImageCapture.setTargetRotationDegrees(int)
etImageAnalysis.setTargetRotationDegrees(int)
sont également ajoutés. (Id3ffe, b/205242781) - Autorisez
VIDEO_CAPTURE
etPREVIEW|VIDEO_CAPTURE
comme cible d'effets. Les effets qui ciblentVIDEO_CAPTURE
seront appliqués à l'UseCaseVideoCapture
. Les effets qui ciblentPREVIEW|VIDEO_CAPTURE
seront appliqués à un flux partagé avant d'être copiés dans le flux Preview etVideoCapture
. (Iee6f3)
Correction de bugs
- Dans Appareil photo
1.2.2
: correction du problème qui empêchait les extensions CameraX de fonctionner correctement lorsque ProGuard est activé sur certains appareils tels que le Pixel (I90aa2) - Correction d'un bug
PreviewView
qui pouvait entraîner une distorsion de l'aperçu en cas de rotation de l'écran si l'application gère elle-même l'orientation de l'écran. Cela ne se produit que sur certains appareils. Il peut être reproduit sur le Pixel 4a, le Pixel 5 et le Pixel 6a. (I14340, b/223488673)
Version 1.3.0-alpha04
22 février 2023
Publication d'androidx.camera:camera-*:1.3.0-alpha04
. Liste des commits de la version 1.3.0-alpha04.
Nouvelles fonctionnalités
Nouvelle fonctionnalité permettant de prendre en charge des combinaisons de surfaces non compatibles précédemment en partageant un flux avec plusieurs cas d'utilisation.
- Auparavant, lors de la liaison de "Preview, VideoCapture, ImageAnalysis" au niveau matériel COMPLET et inférieur, ou de la liaison de "Preview, VideoCapture, ImageCapture" au niveau matériel LEGACY de l'appareil photo, CameraX renvoyait
IllegalArgumentException
. - Les liaisons fonctionnent désormais sans exception. CameraX utilise OpenGL pour copier un flux partagé à la fois dans Preview et VideoCapture.
- Comme le coût de la copie tampon, l'application peut constater une augmentation de la latence et de la consommation d'énergie.
Modifications apportées à l'API
- Ajout de l'API pour convertir
ImageProxy
enBitmap
. Le formatImageProxy
compatible estImageFormat.YUV_420_888
etPixelFormat.RGBA_8888
. Si le format n'est pas valide,IllegalArgumentException
est renvoyé. (Ic7110) - Ajoutez
CoroutineCameraViewfinder
pour permettre la configuration du viseur à l'aide de fonctions de suspension en Kotlin. (I657bc) - Ajout d'un constructeur public pour
ViewfinderSurfaceRequest
. Il offre une certaine flexibilité lorsque l'utilisateur ne peut pas fournirCameraCharacteristics
. (Ie6549)
Correction de bugs
- Correction du plantage lié aux extensions sur certains appareils Samsung lors de la mise en pause ou de la reprise trop rapide de l'application. (Iaca26)
Version 1.3.0-alpha03
25 janvier 2023
Publication d'androidx.camera:camera-*:1.3.0-alpha03
. Liste des commits de la version 1.3.0-alpha03
Modifications apportées à l'API
- Ajout de
CameraInfo.getIntrinsicZoomRatio
pour fournir des informations sur l'angle de vue par rapport à la caméra par défaut. (Ib300c) - Ajout de
CameraInfo.getLensFacing
pour fournir des informations sur l'orientation de l'objectif. Ajout de la fonctionnalité expérimentaleCameraSelector#LENS_FACING_EXTERNAL
pour sélectionner des caméras externes. (Icaf3e) - Ajout de
#setEffect()
àCameraController
pour pouvoir ajouter des effets à la sortie de la caméra. (I1d21f) - Ajout de la méthode
invalidate()
àSurfaceRequest
. Le fournisseur de surface peut signaler que la surface précédemment fournie n'est plus valide. (Idc649) - Ajout d'une API
ImageProcessor
. Cette interface permet d'injecter des effets de post-traitement dans le pipelineImageCapture
. (I575c6) - Ajout de l'API
Recorder.Builder.setAspectRatio()
, qui peut être combinée àQualitySelector
pour prendre en charge plus de résolutions vidéo. (I8a082) - Ajout de
Recorder.Builder#setTargetVideoEncodingBitRate
pour définir l'encodage vidéo cibleBitRate
etRecorder#getTargetVideoEncodingBitRate
pour obtenir le débit d'encodage vidéo cible. (I5984d)
Correction de bugs
- Résolution de l'échec d'
ImageCapture
et lorsque le mode Flash est activé en l'absence de flash. (I9e8b4, b/263391112) - Correction d'un problème de corruption d'image JPEG lors de l'écriture de données de localisation Exif sur certains appareils Samsung équipés d'Android 12. (Ib7086, b/263747161, b/263289024)
- Lorsque vous réglez la lampe de poche ou le zoom avant la fin de l'initialisation de la caméra, par exemple lorsque vous appelez
CameraController#enableTorch
, l'action en attente est mise en cache et envoyée une fois l'initialisation terminée. (I11e92, b/264157663)
Version 1.3.0-alpha02
7 décembre 2022
Publication d'androidx.camera:camera-*:1.3.0-alpha02
. Liste des commits de la version 1.3.0-alpha02
Modifications apportées à l'API
- Ajout d'une API pour appliquer l'effet de post-traitement à la sortie de Preview. (Ic17d5)
- Remplacement du nom
OutputOptions.getDurationLimit
parOutputOptions.getDurationLimitMillis
et du nomOutputOptions.setDurationLimit
parOutputOptions.setDurationLimitMillis
. (I91f0c) - Ajout de la classe
AudioConfig
pour gérer le paramètre audio lors de l'enregistrement vidéo. Déplacement de l'annotation@RequiresPermission
, des fonctionsstartRecording
versAudioConfig
, pour éviter les demandes d'autorisation inutiles dans les cas où l'audio n'est pas nécessaire. (I28755) - Suppression des classes Metadata,
OnVideoSavedCallback
,OutputFileOptions
etOutputFileResults
, qui ne sont plus utilisées après la mise en œuvre de la nouvelle API de capture vidéo. (I38cd8) - Mise en œuvre de la nouvelle API de capture vidéo. Remplacement des méthodes
getVideoCaptureTargetSize
etsetVideoCaptureTargetSize
par les méthodesgetVideoCaptureTargetQuality
etsetVideoCaptureTargetQuality
, carsetTargetResolution
n'est plus pris en charge. (I2a1d5)
Corrections de bugs
- Suppression de l'API
core.VideoCapture
obsolète. (I531e0) - Correction du problème qui empêchait le rappel
onError
d'enregistrer des images sans l'autorisation de stockage. (I936db, b/244807669) - Amélioration de la qualité et de la fiabilité des extensions pour appareil photo. En raison de problèmes liés à la prise en charge de l'effet bokeh, à la capture d'images et à la reprise après aperçu, les extensions pour appareil photo sont désactivées sur les appareils Motorola qui utilisent la version 1.1.0 ou antérieure de Camera Extensions. (Id3ce3)
- Résolution du plantage natif lors du recadrage des vidéos via
ViewPort
sur les anciens appareils. (I16b8a, b/251357665)
Version 1.3.0-alpha01
9 novembre 2022
Publication d'androidx.camera:camera-*:1.3.0-alpha01
. Liste des commits de la version 1.3.0-alpha01
Nouvelles fonctionnalités
- Officialisation de la publication de
Camera-viewfinder
.Camera-viewfinder
fournit un widget de viseur de base pouvant afficher le flux de la caméra pour Camera2. Consultez l'exemple de code pour un cas pratique.
Modifications apportées à l'API
- Ajout de
OutputOptions.setDurationLimit
pour permettre de définir une durée maximale de vidéo. Les enregistrements sont automatiquement finalisés lorsqu'ils dépassent la durée spécifiée. (I902a0) - Ajout de l'état d'erreur audio
AudioStats.AUDIO_STATE_SOURCE_ERROR
pour l'enregistrement vidéo. Survient en cas d'erreur ou d'échec de la configuration de la source audio. (I37410)
Corrections de bugs
- Ajout d'un traitement particulier pour permettre à certains appareils problématiques de réessayer une fois en cas d'échec de la capture. (Id4795)
- Correction du problème d'écran noir lié à l'implémentation de
PreviewView
etSurfaceView
surViewPager2
. Dans le cadre de ce correctif,PreviewView
réutilisera saSurfaceView
si la résolution demandée n'est pas modifiée. (Ib3f27) - Prise en charge du recadrage des vidéos (fonctionnalité WYSIWYG) lorsque l'API
ViewPort
ouCameraController
est utilisée. (Ifbba8, b/201085351) - Correction du problème qui empêchait la vidéo capturée avec la caméra avant d'être enregistrée sur Huawei P40 Lite. (I87c57, b/250807400)
Version 1.2
Version 1.2.3
24 mai 2023
Publication d'androidx.camera:camera-*:1.2.3
. Liste des commits de la version 1.2.3
Correction de bugs
- Correction d'un problème qui empêchait
VideoCapture
de fonctionner avec la caméra avant sur certains appareils. Par exemple, sur le Samsung Galaxy S23 et le Xiaomi 2107113SG. (Ibec7e, b/270656244)
Version 1.2.2
22 mars 2023
Publication d'androidx.camera:camera-*:1.2.2
. Liste des commits de la version 1.2.2
Correction de bugs
- Correction du problème qui empêchait les extensions CameraX de fonctionner correctement lorsque ProGuard était activé sur certains appareils tels que le Pixel (I90aa2)
Version 1.2.1
25 janvier 2023
Publication d'androidx.camera:camera-*:1.2.1
. Liste des commits de la version 1.2.1
Correction de bugs
- Correction d'un problème de corruption d'image JPEG lors de l'écriture de données de localisation Exif sur certains appareils Samsung équipés d'Android 12. (b/263289024)
Version 1.2.0
7 décembre 2022
Publication d'androidx.camera:camera-*:1.2.0
. Liste des commits de la version 1.2.0
Changements importants depuis la version 1.1.0
- Ajout d'une bibliothèque : camera-mlkit-vision. Intégrez facilement CameraX à de nombreuses fonctionnalités MLKit, y compris la lecture de codes-barres, la détection de visages, la détection de texte, etc. Ajout de
MLKitAnalyzer
en tant que nouvelles API. - Nouvelle API Zero-Shutter Lag expérimentale. Optimise le pipeline de capture afin d'améliorer la latence tout en préservant une bonne qualité d'image. Lorsque le mode de capture est défini sur
CAPTURE_MODE_ZERO_SHUTTER_LAG
, la latence entre l'appui sur le bouton de l'obturateur et la prise de photo est réduite au maximum, contrairement aux autres modes de capture. Pour les appareils qui ne sont pas compatibles avecZERO_SHUTTER_LAG
,CAPTURE_MODE_MINIMIZE_LATENCY
est activé à la place. - Abandon de
android.camera.core.VideoCapture
. - Ajout de
setStreamUseCase()
en tant qu'APICamera2Interop
publique. - Ajout d'une condition de niveau d'API pour
setOutputImageRotationEnabled
. ImageAnalysis.Analyzer#getTargetResolutionOverride()
a été renomméImageAnalysis.Analyzer#getDefaultTargetResolution()
.- Ajout d'une API pour définir les métadonnées de localisation sur la vidéo enregistrée.
- Correction du problème de faible fréquence d'images lors de l'utilisation de
VideoCapture
et de Preview au format 16:9. - Correction du problème d'aperçu noir qui survenait lorsque l'extension BOKEH était activée sur certains appareils Samsung et que l'utilisateur changeait de caméras.
- Résolution du problème d'étirement de
Preview/VideoCapture
affectant les appareils Samsung J7 Prime (SM-G610M) et J7 (SM-J710MN) utilisant le niveau d'API 27. - Ce problème étant résolu, la solution de contournement consistant à inverser horizontalement la région AF pour les caméras avant sur Samsung Android T a été désactivée.
Version 1.2.0-rc01
24 octobre 2022
Publication d'androidx.camera:camera-*:1.2.0-rc01
. Liste des commits de la version 1.2.0-rc01
Modifications apportées à l'API
- Ajout de l'API
setStreamUseCase
pourOutputConfiguration
. L'utilisateur peut spécifier le cas d'utilisation Stream pour la session de streaming, en ignorant la logique interne de CameraX pour imposer ce cas d'utilisation afin d'optimiser en fonction de ses besoins. (Ib1a95)
Corrections de bugs
- Résolution du problème d'étirement de
Preview/VideoCapture
affectant les appareils Samsung J7 Prime (SM-G610M) et J7 (SM-J710MN) utilisant le niveau d'API 27. La résolution 1920 × 1080 entraîne l'étirement desPreview/VideoCapture
images. Ajout d'une solution de contournement permettant de ne pas sélectionner la résolution 1920 × 1080 pour Preview ouVideoCapture
, ce qui évite le problème d'étirement de l'image. (I0e04e) - Correction du problème de faible fréquence d'images lors de l'utilisation de
VideoCapture
et de Preview au format 16:9 sur certains appareils Huawei. (If8c88, b/223643510) - Résolution du problème d'ouverture de la caméra lorsque
SurfaceProvider
de Preview n'est pas défini. Dans le cadre de ce correctif, Preview sansSurfaceProvider
défini ne sera plus configuré dans la session de capture de la caméra. (I99681)
Version 1.2.0-beta02
21 septembre 2022
Publication d'androidx.camera:camera-*:1.2.0-beta02
. Liste des commits de la version 1.2.0-beta02
Modifications apportées à l'API
- Ajout d'une condition de niveau d'API pour
setOutputImageRotationEnabled
. (I26e3e, b/240993561)
Corrections de bugs
- Ce problème étant résolu, la solution de contournement consistant à inverser horizontalement la région AF pour les caméras avant sur Samsung Android T a été désactivée. (I05f69)
- Correction du problème d'aperçu noir qui survenait lorsque l'extension
BOKEH
était activée sur certains appareils Samsung et que l'utilisateur changeait de caméras. (If6168)
Version 1.2.0-beta01
24 août 2022
Publication d'androidx.camera:camera-*:1.2.0-beta01
. Liste des commits de la version 1.2.0-beta01
Nouvelles fonctionnalités
- Nouvelle bibliothèque
camera-mlkit-vision
. Intégrez facilement CameraX à de nombreuses fonctionnalités MLKit, y compris la lecture de codes-barres, la détection de visages, la détection de texte, etc. Pour consulter l'exemple de code, cliquez ici. - Nouvelle API Zero-Shutter Lag expérimentale. Optimise le pipeline de capture afin d'améliorer la latence tout en préservant une bonne qualité d'image. Lorsque le mode de capture est défini sur CAPTURE_MODE_ZERO_SHUTTER_LAG, la latence entre le bouton de l'obturateur et la prise de photo est réduite au maximum, contrairement aux autres modes de capture. Pour les appareils qui ne sont pas compatibles avec ZERO_SHUTTER_LAG, CAPTURE_MODE_MINIMIZE_LATENCY est activé à la place.
- Publication des API
ImageAnalysis.Analyzer
etMLKitAnalyzer
en tant qu'API officielles. - API exposée pour définir les métadonnées de localisation sur la vidéo enregistrée.
ImageAnalysis.Analyzer#getTargetResolutionOverride()
a été renomméImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Corrections de bugs
- Correction du problème de capture d'image Alps k61v1_basic_ref. Les images JPEG capturées à partir de HAL (couche d'abstraction matérielle) présentent des métadonnées Exif incorrectes. Les métadonnées Exif ne comportent pas la balise 0xffd9 ou 0xffda permettant à
ExifInterface
d'analyser correctement les attributs. La capture des images au format YUV, puis leur compression en images de sortie JPEG permettent de résoudre ce problème. (I45abb)
Version 1.2.0-alpha04
27 juillet 2022
Publication d'androidx.camera:camera-*:1.2.0-alpha04
. Liste des commits de la version 1.2.0-alpha04
Modifications apportées à l'API
ImageAnalysis.Analyzer#getTargetResolutionOverride()
a été renomméImageAnalysis.Analyzer#getDefaultTargetResolution()
. Le comportement est également modifié de sorte que la valeur renvoyée par cette méthode puisse être remplacée par la valeur d'ImageAnalysis#setTargetResolution()
. (If1d36)- API exposée pour définir les métadonnées de localisation sur la vidéo enregistrée. Un objet
android.location.Location
peut être défini via la nouvelle APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. (I313a0, b/204197544)
Corrections de bugs
- Correction du problème lié à la prise de photo avec l'aperçu non lié (Ie70b6, b/235119898).
- Résolution du problème de plantage qui se produisait dans
Recorder
lors de la tentative d'enregistrement alors que la source audio n'était pas disponible. (I9f652)
Version 1.2.0-alpha03
29 juin 2022
Publication d'androidx.camera:camera-*:1.2.0-alpha03
. Liste des commits de la version 1.2.0-alpha03
Modifications apportées à l'API
- Suppression de l'annotation expérimentale pour
ImageAnalysis.Analyzer
etMLKitAnalyzer
. (I0ff22)
Corrections de bugs
- Ajout d'un délai avant expiration par défaut de 5 000 ms pour terminer la partie AF avec
isFocusSuccessful
défini sur "false" siFocusMeteringAction
n'est pas annulé et que la partie AF n'est pas convergée pendant la durée. (Ibc2e3) - Correction du problème lié à la prise de photo avec l'aperçu non lié (I1d3a2, b/235119898).
- Activation de la mise en œuvre de l'extension avancée et mise à jour de l'interface des extensions de prise en charge de CameraX avec l'installation de la version 1.2 (I92256).
Version 1.2.0-alpha02
1er juin 2022
Publication d'androidx.camera:camera-*:1.2.0-alpha02
. Liste des commits de la version 1.2.0-alpha02
Nouvelles fonctionnalités
- API CameraX Zero-Shutter Lag exposée comme API expérimentale.
Modifications apportées à l'API
- Ajout du mode de capture
CAPTURE_MODE_ZERO_SHUTTER_LAG
dansImageCapture
et deisZslSupported
dansCameraInfo
pour interroger la fonctionnalité de l'appareil. Le modeCAPTURE_MODE_ZERO_SHUTTER_LAG
vise à fournir la latence minimale pour la capture instantanée. Il est implémenté sur la base de la mémoire tampon en anneau, qui met en cache les résultats de capture intermédiaires pour un permettre de les traiter à nouveau ultérieurement lorsque l'utilisateur appuie sur des boutons pour prendre des photos. Si {@link VideoCapture} est associé, si le mode Flash n'est pas désactivé ou si l'extension OEM est activée, ce mode est désactivé automatiquement. (I9ae74) - Ajout de la méthode
ImageAnalysis.getBackgroundExecutor()
(Icc945)
Corrections de bugs
- Correction de la méthode
ImageCapture
"takePicture" pour désactiver la lampe de poche sur les appareils signalés. (Ib5eb5, b/228272227) - Correction d'un bug qui empêchait le traitement de l'erreur
AssertionError
lors de l'obtention de la caractéristiqueCONTROL_ZOOM_RATIO_RANGE
(/Ia248a, b/231701345)
Version 1.2.0-alpha01
18 mai 2022
Publication d'androidx.camera:camera-*:1.2.0-alpha01
. Liste des commits de la version 1.2.0-alpha01
Nouvelles fonctionnalités
- Lancement de la nouvelle bibliothèque camera-mlkit-vision
Corrections de bugs
- Résolution d'un problème d'enregistrement d'une vidéo UHD par
QualitySelector
lorsqu'une stratégie de secours est activée. Ce problème survient lorsqueVideoCapture
est associé àImageCapture
et Preview sur un appareil photo de niveau matériel FULL ou supérieur. Si la stratégie de secoursQualitySelector
est utilisée, la résolution Full HD n'est pas correctement appliquée àVideoCapture
. La résolution UHD est compatible avec cette combinaison de cas d'utilisation et doit être adoptée. (I0e788, b/230651237) - Correction de
NullPointerException
au niveau d'ImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - Correction du comportement de la mise en pause asynchrone d'
androidx.camera.video.Recorder
(Ia8ce8).
Camera-Camera2, Camera-Core, Camera-Lifecycle et Camera-Video version 1.1.0
Version 1.1.0
29 juin 2022
Publication d'androidx.camera:camera-*:1.1.0
. Liste des commits de la version 1.1.0
Modifications importantes depuis la version 1.0.0
- Bibliothèques Landed View, Extension et Video Capture en tant que première version RC. À partir de la version 1.1.0-beta01, toutes les bibliothèques CameraX adopteront le même numéro de version. Les développeurs pourront ainsi suivre les versions beaucoup plus facilement et réduire la complexité des matrices de compatibilité des versions de grande envergure.
- Introduction de nouvelles API et fonctionnalités publiques, y compris :
- Ajout de la bibliothèque camera-video officielle pour prendre en charge les cas d'utilisation de capture vidéo.
- Fonctionnalités de conversion et de rotation de YUV à RVB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
etsetOutputImageFormat
). - Activation du mode multifenêtre en permettant aux applications CameraX de réactiver l'appareil photo lorsqu'il est interrompu par une autre application et qu'il est ciblé de nouveau.
- Correction de certains problèmes d'aperçu pour garantir le bon fonctionnement de la CameraX sur les appareils pliables.
- Ajout d'une API
CameraState
exposée via CameraInfo. - Ajout d'une API
ProcessCameraProvider.getAvailableCameraInfos()
pour récupérer directement des informations sur les appareils photo disponibles. - Format de sortie JPEG pour
ImageCapture#OnImageCapturedCallback
lorsque les extensions sont activées. - Ajout d'une API
isFocusMeteringSupported
dansCameraInfo
, qui permet aux applications de vérifier si l'élémentFocusMeteringAction
donné est compatible ou non avec l'appareil photo actuel. - API
getResolutionInfo
exposée pour fournir les informations de résolution pour Preview,ImageCapture
etImageAnalysis
. - Ajout d'une API
ImageCapture.Builder#setJpegQuality
permettant de modifier la qualité de compression des images JPEG de sortie lorsque des photos sont prises. - Ajout de
CameraSelector#filter
à l'API publique pour filtrer une liste deCameraInfos
basée sur unCameraSelector
. - Ajout de
Camera2CameraControl.clearCaptureRequestOptions
pour effacer les options de demande de capture existantes. - Ajout d'une API expérimentale permettant d'utiliser
CameraController
avec des bibliothèques de traitement d'images externes comme MLKit. - Ajout de l'API expérimentale
CameraInfo#getCameraSelector()
, qui renvoie unCameraSelector
unique à son appareil photo. - Passage de plusieurs API expérimentales au stade d'API publiques officielles.
- Remplacement de l'annotation
@Experimental
par@RequiresOptIn
pour les API expérimentales. Pour appeler des API expérimentales, utilisez androidx.annotation.OptIn au lieu d'androidx.annotation.experimental.UseExperimental. - Passage des API expérimentales suivantes au stade d'API officielles :
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, - API
@ExperimentalCameraFilter
- API expérimentales de correction d'exposition
- Promotion de l'API expérimentale
UseCaseGroup
pour camera-core, camera-lifecycle et camera-video. Ajout deViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
etViewPort.Builder#setScaleType
pour personnaliser la fenêtre d'affichage. - Passage d'
ExperimentalUseCaseGroupLifecycle
au stade d'API publique officielle. - Modifications apportées aux API existantes.
- Remplacement de
Renamed MediaStoreOutputOptions.getCollection
parMediaStoreOutputOptions.getCollectionUri
. ActiveRecording
a été renommé "Recording" pour réduire la verbosité.- Remplacement de l'API de création
QualitySelector
par une API basée sur des listes.
Corrections de bugs
- Résolution du problème de
YuvToJpegProcessor
EOFException
lorsque le mode extension est activé et que le modeImageCapture#CAPTURE_MODE_MAX_QUALITY
est défini. - Résolution de l'échec de la configuration du codec en raison de la fermeture de l'enregistrement vidéo.
- Résolution du problème de format étiré de l'aperçu/de la vidéo lors de l'enregistrement en Full HD.
- Résolution du problème de synchronisation du son et de la vidéo la mise en pause et la reprise sur certains appareils.
- Résolution du problème de déclenchement du flash lors de la mise au point (
startFocusAndMetering
) lorsque le mode Flash est automatique ou toujours activé, en cas de faible luminosité.
Version 1.1.0-rc02
1er juin 2022
Publication d'androidx.camera:camera-*:1.1.0-rc02
. Liste des commits de la version 1.1.0-rc02
Corrections de bugs
- Correction de
NullPointerException
au niveau d'ImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - Correction d'un bug qui empêchait la gestion de l'erreur
AssertionError
lors de l'obtention de la caractéristiqueCONTROL_ZOOM_RATIO_RANGE
. (Ia248a, b/231701345)
Version 1.1.0-rc01
11 mai 2022
Publication d'androidx.camera:camera-*:1.1.0-rc01
. Liste des commits de la version 1.1.0-rc01
Nouvelles fonctionnalités
- Publication de la première version RC pour camera-video, camera-view et camera-extension.
Corrections de bugs
- Résolution du problème de publication du codec vidéo lorsque
VideoCapture<Recorder>
était dissocié, ce qui entraînait l'échec de l'utilisation deVideoCapture<Recorder>
lors de l'enregistrement avecMediaCodec.CodecException
, en particulier sur les appareils équipés de l'API 21 à 22. (Ie7f68) - Résolution du problème de suppression des images capturées pour
CameraExtensionsActivity
dansImageCaptureTest
.
Version 1.1.0-beta03
6 avril 2022
Publication d'androidx.camera:camera-*:1.1.0-beta03
. Liste des commits de la version 1.1.0-beta03
Modifications apportées à l'API
- Application de restrictions au constructeur
CaptureRequestOptions
. (I261b6) - Ajout d'une API expérimentale permettant d'utiliser
CameraController
avec des bibliothèques de traitement d'images externes comme MLKit. (I4ea71)
Corrections de bugs
- Résolution du problème d'affichage latéral de l'aperçu dans
PreviewView
lorsque l'activité n'est pas redémarrée après la rotation des appareils en mode multifenêtre. (I1ea36, b/223488673) - Résolution d'un problème multifenêtre qui, lorsque le ciblage est de nouveau dans l'application, ne parvient pas à réactiver l'appareil photo si (1) une autre application à priorité élevée ouvre un autre appareil photo (2) s'il s'agit d'un appareil Samsung Android 12. (I7e9f2)
- Ajout d'une solution de contournement pour les appareils qui plantent lors d'une vérification de la disponibilité du flash. La lampe de poche n'est pas disponible sur ces appareils. (If26a3, b/216667482)
- Correction de l'erreur
AbstractMethodError
lorsque les applications utilisent des extensions et activent ProGuard. (I7cbaf, b/222726805) - Désactivation forcée de l'extension bokeh sur l'appareil Motorola razr 5G, qui entraîne l'affichage d'un écran d'aperçu noir. (I35d49)
- Résolution du problème de synchronisation du son et de la vidéo après la mise en pause et la reprise sur certains appareils Samsung dotés d'une version d'API antérieure à l'API 29. (I64622, b/202798609, b/202798572)
- Résolution du problème de synchronisation du son et de la vidéo la mise en pause et la reprise sur Sony G3125. (I2a1a5, b/202799148)
- Résolution du problème de plantage en cas d'exception
InvalidConfigException
au niveau de l'enregistreur. Ce correctif permet d'empêcher le plantage de l'application, mais ne résout pas le problème lié à l'exceptionInvalidConfigException
. Si leRecorder
ne peut toujours pas être configuré, les applications recevront un rappel d'erreur au début de l'enregistrement. (I89c29, b/213617227)
Contribution externe
- Mise à jour de l'API :compose:ui:ui-test (updateApi) suite à la migration de test-coroutines-lib. (I3366D)
Version 1.1.0-beta02
23 février 2022
Publication d'androidx.camera:camera-*:1.1.0-beta02
. Liste des commits de la version 1.1.0-beta02
Modifications apportées à l'API
- Ajout de la possibilité de spécifier l'ID de l'appareil photo physique via Camera2Interop. (I5aed8)
Corrections de bugs
- Résolution du problème d'aperçu étiré sur l'appareil Oppo Find N. (I7d004)
- Résolution d'un problème de distorsion sur le Galaxy J7 Prime. (I4c500)
- Utilisation d'un débit compatible pour trouver un encodeur vidéo. (d969052)
Version 1.1.0-beta01
26 janvier 2022
Publication d'androidx.camera:camera-*:1.1.0-beta01
. Liste des commits de la version 1.1.0-beta01
Nouvelles fonctionnalités
- À partir de la version 1.1.0-beta01, toutes les bibliothèques CameraX adopteront le même numéro de version. Les développeurs pourront ainsi suivre les versions beaucoup plus facilement et réduire la complexité de la matrice de compatibilité des versions de grande envergure.
Modifications apportées à l'API
- Ajout de
Camera2CameraControl.clearCaptureRequestOptions
pour effacer les options de demande de capture existantes. (Ifa07d)
Corrections de bugs
- Résolution du problème de plantage qui survenait lors de l'enregistrement de la vidéo sur certains appareils antérieurs à Android (API 26). (I88fdf, b/212328261)
- Résolution du problème de région AF incorrecte lors de l'utilisation de
cameraControl#startFocusAndMetering()
sur l'appareil photo avant des appareils Samsung. (Ifbf59, b/210548792) - Utilisation de la lampe de poche comme flash sur le Pixel 3a/Pixel 3a XL pour améliorer la vitesse et la qualité de l'image capturée dans l'obscurité. (Ib12b6, b/211474332)
- Activation d'applications permettant de réactiver l'appareil photo lorsqu'il est interrompu par une autre application de priorité supérieure en mode multifenêtre, et qu'il est ciblé de nouveau. Veuillez noter qu'en raison d'un problème lié au framework, il peut y avoir une latence (de 1 à 10 secondes environ) entre les changements de ciblage de l'application et la réouverture de l'appareil photo. (I4d092)
Version 1.1.0-alpha12
15 décembre 2021
Publication d'androidx.camera:camera-*:1.1.0-alpha12
. Liste des commits de la version 1.1.0-alpha12
Modifications apportées à l'API
- Suppression des annotations
@RequiresApi(21)
inutiles des classes/interfaces internes. (I8e286, b/204917951) - Les constantes de qualité et les constantes de la stratégie de secours de
QualitySelector
ont été modifiées pour être représentées par des objets de classe. Par exemple,QualitySelector.QUALITY_HD
est remplacé parQuality.HD
, etQualitySelector.FALLBACK_STRATEGY_LOWER
est remplacé par l'instance renvoyée parFallbackStrategy.lowerQualityOrHigherThan(Quality)
. L'API utilisée pour créerQualitySelector
a été remplacée par une API basée sur des listes. La nouvelle APIQualitySelector.fromOrderedList(List<Quality>)
fait référence à l'ordre de la liste des qualités d'entrée, et non à l'ordre créé parQualitySelector.Procedure
. La classeQualitySelector.Procedure
a été supprimée. (I43343) PendingRecording.withEventListener()
a été supprimé, et l'écouteur d'événements doit désormais être transmis àPendingRecording.start()
. Cette exigence d'écouteur d'événements vise à encourager la gestion des erreurs asynchrones signalées dans l'événementVideoRecordEvent.Finalize
. (I1e71d)ActiveRecording
a été renomméRecording
afin de réduire la verbosité. (I77ceb)
Corrections de bugs
- Résolution du problème qui faisait que les photos capturées en mode
FLASH_AUTO
étaient sous-exposées dans des conditions sombres sur les Pixel 3a et les Pixel 3a XL. (I13f19, b/205373142). - Utilisation de la dernière taille d'affichage pour déterminer la
Resolution
de l'aperçu. (I4a694) - Filtrage des appareils photo qui n'utilisent pas
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Les appareils photoREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
disposent de toutes les fonctionnalités minimales requises. Il est possible qu'un appareil photo sansREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
soit compatible avec des fonctionnalités spéciales et n'accepte pas les couleurs de sortie standards.CameraX
n'est pas compatible avec les cas d'utilisationPreview
,ImageCapture
,ImageAnalysis
ouVideoCapture
pour ces appareils photo. Ils doivent donc être filtrés pour éviter une utilisation incorrecte. (Ib8cda) CameraSelector#filter
ne génère plus d'exceptionIllegalArgumentException
lorsque l'ensemble de résultats est vide. (I27804)- Une heuristique plus intelligente permet désormais de sélectionner les paramètres de l'encodeur en fonction des profils spécifiés par l'OEM. (Iaeef0)
- Après le lancement de l'enregistrement vidéo UHD sur le Pixel 1, l'aperçu corrigé présente des lignes de couleur entrelacées. (I833c6, b/205340278)
Version 1.1.0-alpha11
17 novembre 2021
Publication d'androidx.camera:camera-*:1.1.0-alpha11
. Liste des commits de la version 1.1.0-alpha11
Modifications apportées à l'API
- Ajout de CameraSelector#filter à l'API publique pour filtrer une liste d'éléments CameraInfos basée sur un CameraSelector. (I105d0)
Ajout de l'API setOutputImageRotationEnabled pour la configuration d'ImageAnalysis L'utilisateur peut activer la rotation pour le tampon d'image YUV/RVB. Le degré de rotation est une rotation relative calculée en fonction de la rotation des capteurs et de la cible pour garder l'image au premier plan.
Ajout de l'API setOutputImageRotationEnabled pour la configuration d'ImageAnalysis L'utilisateur peut activer la rotation pour le tampon d'image YUV/RVB. Le degré de rotation est une rotation relative calculée en fonction de la rotation des capteurs et de la cible pour garder l'image au premier plan.
Ajout de l'API
getSensorToBufferTransformMatrix
dans ImageInfo. La matrice renvoyée est un mappage entre les coordonnées du capteur et les coordonnées du tampon, c'est-à-dire la valeur entreCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
et(0, 0, image.getWidth, image.getHeight)
. La matrice peut être utilisée pour mapper les coordonnées entre des objets {UseCase}. Par exemple, vous pouvez mapper les coordonnées de la détection de visages via ImageAnalysis avec Preview. (I9ff1e)Ajout d'une API ImageCapture.Builder#setJpegQuality permettant de modifier la qualité de compression des images JPEG de sortie lorsqu'une photo est prise. (I8dcf4)
Remplacement du nom MediaStoreOutputOptions.getCollection par MediaStoreOutputOptions.getCollectionUri. (I16639)
Corrections de bugs
- Résolution du problème de déclenchement du flash lors de la mise au point (startFocusAndMetering) lorsque le mode Flash est automatique ou toujours activé, en cas de faible luminosité. (Id4c11)
- Désactivation de HDR+ sur le Pixel 2 XL ou le Pixel 3 XL en mode MINIMIZE_LATENCY pour réduire la latence. (Ib6270, b/203505523)
Contribution externe
Version 1.1.0-alpha10
13 octobre 2021
Publication d'androidx.camera:camera-*:1.1.0-alpha10
. Liste des commits de la version 1.1.0-alpha10
Nouvelles fonctionnalités
- Publication officielle de la première version alpha pour vidéo d'
androidx.camera:camera-video:1.1.0-alpha10
. Plusieurs problèmes connus seront résolus dans les versions suivantes.
Modifications apportées à l'API
- Ajout de l'annotation
@RequiresApi(21)
à toutes les classes CameraX et suppression de minSdkVersion dans le fichier AndroidManifest.xml. Camera-core sera ainsi facilement intégré aux applications dont la version de SDK minimale est inférieure à 21, mais qui souhaitent utiliser de manière conditionnelle des chemins de code basés sur l'API 21 ou version ultérieure. Pour toute application disposant d'une version de SDK minimale 21 ou ultérieure, cette modification ne nécessite aucune action. (Ie7f2e, b/200599470)
Corrections de bugs
- Lancement d'une exception InitializationException pour permettre à l'application de gérer correctement l'erreur AssertionError lors de la création de CameraCharacteristics. (Ibec79)
Version 1.1.0-alpha09
29 septembre 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
et androidx.camera:camera-lifecycle:1.1.0-alpha09
. Liste des commits de la version 1.1.0-alpha09
Modifications apportées à l'API
- L'annotation ExperimentalUseCaseGroup a été supprimée, car les API ne sont plus expérimentales. (I01ef5)
Corrections de bugs
- Résolution du problème de floutage des photos en mode
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Résolution d'un problème Samsung Galaxy J5 qui empêchait l'appareil photo de prendre des photos avec le flash activé/automatique dans un environnement sombre. (I3aab9)
- Lorsque le recadrage est nécessaire pour ImageCapture, la compression de la sortie recadrait l'image avec le niveau de qualité JPEG spécifié selon le mode de capture défini. Si le mode de capture est
CAPTURE_MODE_MINIMIZE_LATENCY
, la qualité de compression JPEG est de 95. Si le mode de capture estCAPTURE_MODE_MAXIMIZE_QUALITY
, la qualité de compression JPEG est de 100. (Ieb37c, b/142856426)
Version 1.1.0-alpha08
18 août 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
et androidx.camera:camera-lifecycle:1.1.0-alpha08
. Liste des commits de la version 1.1.0-alpha08
Nouvelles fonctionnalités
- Ajout de l'API setOutputImageFormat pour la configuration d'analyse d'image. L'utilisateur peut sélectionner ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 ou ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Par défaut, ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 est sélectionné. (I7902d)
Modifications apportées à l'API
- L'annotation ExperimentalUseCaseGroupLifecycle a été supprimée, car les API ne sont plus expérimentales. (I17b85)
Corrections de bugs
- L'écran d'aperçu était trop lumineux sur le Huawei P20 Lite. Ce problème ne survient que lorsque certaines résolutions d'aperçu spéciales sont utilisées avec un zoom avant de grande taille. (Idefce, b/192129158)
- Résolution du problème de dysfonctionnement du flash sur certains appareils lorsque le mode Flash était défini sur FLASH_MODE_ON et que des photos étaient prises juste après. (Ieb49b)
- Résolution du problème qui provoquait l'arrêt de l'aperçu pendant un certain temps lors de la prise de photos si les fonctions VideoCapture, ImageCapture et Preview étaient liées. (I56197, b/193864120)
- Permet à Analysis de sélectionner une résolution supérieure à 1 080 pixels. Un appareil supérieur au niveau LIMITED peut prendre en charge une résolution de taille RECORD pour ImageAnalysis lorsqu'il est lié à Preview et ImageCapture. Dans ce cas, la résolution sélectionnée pour ImageCapture doit également être résolution de taille RECORD. Afin de sélectionner une résolution de taille RECORD pour ImageAnalysis, vous devez définir une résolution cible de taille RECORD au niveau d'ImageCapture et d'ImageAnalysis. Cela indique que l'application comprend clairement le compromis entre les deux tailles et préfère qu'ImageAnalysis ait une résolution plus grande au lieu d'utiliser une résolution MAXIMUM pour ImageCapture. Pour vous familiariser avec les définitions des tailles RECORD et MAXIMUM et pour en savoir plus, consultez la page https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. La taille RECORD correspond à la résolution d'enregistrement maximale acceptée par l'appareil photo, telle qu'elle est déterminée par CamcorderProfile. La taille MAXIMUM correspond à la résolution de sortie maximale de l'appareil photo pour ce format ou cette cible, à partir de StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Ajout des informations Exif à l'image capturée. (I01ff0, b/193342619)
- Dans ImageCapture, renvoi de l'URI de l'image enregistrée si l'emplacement d'enregistrement correspond à "Fichier". (Ib5b49, b/149241379)
- Résolution d'un problème qui entraînait un assombrissement des photos prises avec flash sur de nombreux appareils. (I4e510)
Version 1.1.0-alpha07
21 juillet 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
et androidx.camera:camera-lifecycle:1.1.0-alpha07
. Liste des commits de la version 1.1.0-alpha07
Corrections de bugs
- Résolution d'un problème sur Samsung Galaxy Note 5 sur lequel l'appareil photo se figeait lorsque des photos étaient prises avec le flash activé/automatique dans un environnement sombre. (If6871)
- Correction du problème EOFException
YuvToJpegProcessor
lorsque le mode extension est activé et que le modeImageCapture#CAPTURE_MODE_MAX_QUALITY
est défini. (I538bd, b/192017012)
Version 1.1.0-alpha06
30 juin 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
et androidx.camera:camera-lifecycle:1.1.0-alpha06
. Liste des commits de la version 1.1.0-alpha06
Modifications apportées à l'API
- Passage des API expérimentales de correction d'exposition à un niveau supérieur pour camera-core. (I08ee8)
- Ajout d'une API isFocusMeteringSupported dans CameraInfo, qui permet aux applications de vérifier si l'action FocusMeteringAction indiquée est compatible ou non avec l'appareil photo actuel. (Ib45ae, b/188606490)
- API getResolutionInfo exposée afin de fournir les informations de résolution pour Preview, ImageCapture et ImageAnalysis. (I2b613, b/188600718)
- Passage des API expérimentales suivantes au stade d'API officielles : CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Interface CameraProvider exposée pour permettre l'accès à un ensemble d'appareils photo. (I1a7b1)
- Promotion de l'API expérimentale UseCaseGroup pour camera-core, camera-lifecycle et camera-video. Ajout de
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
etViewPort.Builder#setScaleType
pour personnaliser la fenêtre d'affichage. (I7cee8)
Version 1.1.0-alpha05
2 juin 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
et androidx.camera:camera-lifecycle:1.1.0-alpha05
. Liste des commits de la version 1.1.0-alpha05
Modifications apportées à l'API
- Suppression de la classe
Camera2CameraFilter
. Envisagez de sélectionner l'appareil photo via CameraFilter et de récupérer CameraCharacteristics ou d'autres informations liées à Camera2 via Camera2CameraInfo si nécessaire. (Ib887c) - Les API
ExperimentalCameraFilter
ne sont plus au stade expérimental et deviennent des API formelles. Elles peuvent être utilisées sans l'annotation OptIn. (I4bc94) - Ajout de l'API d'état de l'appareil photo via
CameraInfo#getCameraState()
. (Ia86b4) - Ajout de l'API expérimentale
CameraInfo#getCameraSelector()
, qui renvoie un CameraSelector propre à son appareil photo. (I77f9f)
Corrections de bugs
- Résolution du problème de renvoi de ListenableFuture dans setZoomRatio et setLinearZoom sur certains appareils Android 11. (I716d7)
- Accélération des contacteurs de l'appareil photo et réduction du taux d'erreur de l'appareil photo. (I34c99)
- Remplacement de ExperimentalUseCaseGroupLifecycle par ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Version 1.1.0-alpha04
21 avril 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
et androidx.camera:camera-lifecycle:1.1.0-alpha04
. Liste des commits de la version 1.1.0-alpha04
Corrections de bugs
- Correction d'une fuite de mémoire causée par l'accès simultané de plusieurs threads à la même collection. Une fuite de mémoire peut entraîner la conservation de l'activité ou du fragment par une instance Preview. (I7b4b8)
- Remplacement de l'annotation
@Experimental
par@RequiresOptIn
pour les API expérimentales. Pour appeler des API expérimentales, utilisezandroidx.annotation.OptIn
au lieu de l'élément obsolèteandroidx.annotation.experimental.UseExperimental
. (Iff226) - Résolution d'un problème de capture d'image qui prenait des photos délavées avec le flash activé/automatique sur le Samsung Galaxy S7. (I30001)
- Ajout d'une API CameraState exposée via CameraInfo. (I75392)
Version 1.1.0-alpha03
24 mars 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
et androidx.camera:camera-lifecycle:1.1.0-alpha03
. Liste des commits de la version 1.1.0-alpha03
Corrections de bugs
- Format de sortie JPEG pour
ImageCapture#OnImageCapturedCallback
lorsque les modes Extensions sont activés. (I0d7b1) - Correction de l'échec de l'initialisation sur les appareils UMIDIGI BISON, (I57d9e, b/180818665)
- Résolution du problème d'aperçu étiré en mode PreviewView sur les appareils Samsung A3. (Iacb30, b/180121821)
Version 1.1.0-alpha02
24 février 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
et androidx.camera:camera-lifecycle:1.1.0-alpha02
. Liste des commits de la version 1.1.0-alpha02
Modifications apportées à l'API
- Ajout d'une API
ProcessCameraProvider.getAvailableCameraInfos()
pour récupérer directement des informations sur les appareils photo disponibles, à savoir tous les appareils photo ou à ceux sélectionnés par l'élémentCameraSelector
fourni dansCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (Ieac08)
Corrections de bugs
- CameraX essaie maintenant de forcer l'ouverture d'un appareil photo lors de la première tentative. Cette action peut entraîner l'ouverture de l'appareil photo par CameraX au lieu des autres clients d'appareils photo lorsque son application a une priorité plus élevée. (Iab069, b/175820568)
- Correction de l'échec du test Robolectric lors de l'utilisation de setAvailableCamerasLimiter dans CameraXConfig. (Ice307)
- Cette modification détecte l'exception lorsque la file d'attente d'images est au maximum dans ImageAnalysis. Au lieu de causer un plantage, vous remarquerez peut-être que d'autres cas d'utilisation sont figés ou lents, tels que l'aperçu. (Ic12da, b/175851631)
- Correction d'ExtensionsErrorListener pour ne signaler les erreurs que si Preview ou ImageCapture est lié. (I5ae39)
- Correction de la régression des performances d'ImageCapture en supprimant la validation de l'emplacement d'enregistrement de l'image avant de prendre une photo. Une fois la modification effectuée, si la destination d'enregistrement n'est pas valide, la réponse à l'échec prend plus de temps, car elle essaie d'enregistrer l'image une fois la photo prise. (I1fd4e, b/177061560)
- Correction de la régression des performances d'ImageCapture avec le type "File" pour OutputFileOptions. (I5164a, b/177061560)
- Mise à jour de la documentation pour éviter d'utiliser
ProcessCameraProvider.configureInstance(...)
à partir du code de la bibliothèque. (Ib8a9f)
Version 1.1.0-alpha01
27 janvier 2021
Publication d'androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
et androidx.camera:camera-lifecycle:1.1.0-alpha01
. Liste des commits de la version 1.1.0-alpha01
Corrections de bugs
- Ajout d'une solution de contournement pour les données d'image corrompues par intermittence dans les fichiers JPEG sur la caméra arrière des appareils SM-G930T. (I52001, b/159831206)
- Résolution du problème d'
IllegalArgumentException
qui survenait lorsque toutes les tailles d'aperçu compatibles étaient inférieures à 640 x 480 pixels et que l'écran avait une taille supérieure. (I2a63c, b/150506192) - Les ressources de bibliothèques ne comportant pas de ressources publiques explicitement déclarées (par exemple, via public.xml) sont désormais privées par défaut. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core et Camera-Lifecycle Version 1.0.2
Version 1.0.2
29 septembre 2021
Publication d'androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
et androidx.camera:camera-lifecycle:1.0.2
. Liste des commits de la version 1.0.2
Corrections de bugs
- Résolution du problème de floutage des photos en mode
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Résolution d'un problème d'assombrissement des photos prises avec flash sur de nombreux appareils. (I4e510)
Camera-Camera2, Camera-Core et Camera-Lifecycle Version 1.0.1
Version 1.0.1
21 juillet 2021
Publication d'androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
et androidx.camera:camera-lifecycle:1.0.1
. Liste des commits de la version 1.0.1
Corrections de bugs
Résolution du problème de renvoi de
ListenableFuture
danssetZoomRatio
etsetLinearZoom
sur certains appareils Android 11. (I716d7)Résolution du problème de blocage de l'appareil photo lors de sa fermeture sur certains appareils, ce qui entraînait l'affichage d'un aperçu noir. (I34c99)
Camera-Camera2, Camera-Core et Camera-Lifecycle Version 1.0.0
Version 1.0.0
5 mai 2021
Publication d'androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
et androidx.camera:camera-lifecycle:1.0.0
. Liste des commits de la version 1.0.0
Principales fonctionnalités de la version 1.0.0
- CameraX prend en charge Preview, ImageCapture et Analysis.
- CameraX gère le cycle de vie de l'appareil photo dans une API facile à utiliser.
- CameraX vise à fournir une couche de compatibilité qui résout de nombreux problèmes dans l'écosystème d'appareils photo Android.
Problèmes connus
- Consultez la liste des problèmes connus.
Version 1.0.0-rc05
21 avril 2021
Publication d'androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
et androidx.camera:camera-lifecycle:1.0.0-rc05
. Liste des commits de la version 1.0.0-rc05
Corrections de bugs
- Résolution d'un problème de capture d'image qui prenait des photos délavées avec le flash activé/automatique sur le Samsung Galaxy S7. (I30001)
Version 1.0.0-rc04
24 mars 2021
Publication d'androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
et androidx.camera:camera-lifecycle:1.0.0-rc04
. Liste des commits de la version 1.0.0-rc04
Corrections de bugs
- Correction de l'échec de l'initialisation sur les appareils UMIDIGI BISON, (I57d9e, b/180818665)
Version 1.0.0-rc03
24 février 2021
Publication d'androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
et androidx.camera:camera-lifecycle:1.0.0-rc03
. Liste des commits de la version 1.0.0-rc03
Corrections de bugs
- Correction de l'erreur de format dans le document de
ProcessCameraProvider#getInstance
. - Correction de l'échec du test Robolectric lors de l'utilisation de setAvailableCamerasLimiter dans CameraXConfig.
- Correction de la régression des performances d'ImageCapture en supprimant la validation de l'emplacement d'enregistrement de l'image avant de prendre une photo. Une fois la modification effectuée, si la destination d'enregistrement n'est pas valide, la réponse à l'échec prend plus de temps, car elle essaie d'enregistrer l'image une fois la photo prise.
- Cette modification détecte l'exception lorsque la file d'attente d'images est au maximum dans ImageAnalysis. Au lieu de causer un plantage, vous remarquerez peut-être que d'autres cas d'utilisation sont figés ou lents, tels que l'aperçu.
- Ajout d'une solution de contournement pour les données d'image corrompues par intermittence dans les fichiers JPEG sur la caméra arrière des appareils SM-G930T. (I52001, b/159831206)
- Cette modification détecte l'exception lorsque la file d'attente d'images est au maximum dans ImageAnalysis. Au lieu de causer un plantage, vous remarquerez peut-être que d'autres cas d'utilisation sont figés ou lents, tels que l'aperçu. (Ic12da, b/175851631)
- Correction de l'échec du test Robolectric lors de l'utilisation de setAvailableCamerasLimiter dans CameraXConfig. (Ice307)
- Correction de la régression des performances d'ImageCapture en supprimant la validation de l'emplacement d'enregistrement de l'image avant de prendre une photo. Une fois la modification effectuée, si la destination d'enregistrement n'est pas valide, la réponse à l'échec prend plus de temps, car elle essaie d'enregistrer l'image une fois la photo prise. (I1fd4e, b/177061560)
- Correction de la régression des performances d'ImageCapture avec le type "File" pour OutputFileOptions. (I5164a, b/177061560)
Version 1.0.0-rc02
27 janvier 2021
Publication d'androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
et androidx.camera:camera-lifecycle:1.0.0-rc02
. Liste des commits de la version 1.0.0-rc02
Corrections de bugs
- Résolution du problème d'IllegalArgumentException qui survenait lorsque toutes les tailles d'aperçu compatibles étaient inférieures à 640 x 480 pixels et que l'écran avait une taille supérieure. (b/150506192)
Limitation du nombre de tentatives de réouverture de l'appareil photo. Lors d'une tentative de récupération suite à certains problèmes à l'ouverture de l'appareil photo, CameraX n'essaiera plus de rouvrir l'appareil photo indéfiniment, mais s'arrêtera après avoir réessayé pendant 10 secondes. I435d2
Résolution du problème d'
IllegalArgumentException
qui survenait lorsque toutes les tailles d'aperçu compatibles étaient inférieures à 640 x 480 pixels et que l'écran avait une taille supérieure. (I2a63c, b/150506192)
Version 1.0.0-rc01
16 décembre 2020
Publication d'androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
et androidx.camera:camera-lifecycle:1.0.0-rc01
. Liste des commits de la version 1.0.0-rc01
Modifications apportées à l'API
- Modification de CameraFilter et Camera2Filter pour prendre en compte CameraInfo. (I6883d)
- Ajout de la classe expérimentale Camera2CameraControl pour permettre l'interaction dynamique avec les API Camera2. (I45cf3)
- Remplacement du nom Camera2CameraInfo#fromCameraInfo par #from. (Ia2bd6)
- Ajout d'une API expérimentale setAvailableCamerasLimiter à CameraXConfig pour permettre aux applications d'optimiser la latence d'initialisation en évitant l'initialisation des appareils photo non utilisés. (I6cf88)
- Ajout de la méthode expérimentale
CameraXConfig.Builder#setMinimumLoggingLevel()
afin de permettre la définition d'un niveau de journalisation minimal pour les journaux CameraX. Par défaut, elle est définie surLog#DEBUG
. (Ic3245)
Corrections de bugs
- Ajout d'une solution de contournement pour les données d'image corrompues par intermittence dans les fichiers JPEG sur la caméra arrière des appareils SM-G930V. (I5aca5, b/159831206)
- Résolution d'un problème qui empêchait de prendre des photos lorsque le flash était toujours actif et que l'environnement était sombre sur les appareils Samsung SM-A716. (If98b2, b/172036589)
- Résolution du problème qui empêchait d'arrêter l'aperçu en appelant
Preview.setSurfaceProvider(null)
. (I3ac18) - Résolution du problème d'orientation lors de la prise de photos au format 4:3 sur certains appareils. (I0e3fb, b/171492111)
Camera Camera2, Cor et Lifecycle version 1.0.0-beta12
11 novembre 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
et androidx.camera:camera-lifecycle:1.0.0-beta12
. Liste des commits de la version 1.0.0-beta12
Corrections de bugs
- Désactivation du flash automatique sur les appareils Samsung A3 pour résoudre le problème de plantage qui survenait lorsque des photos étaient prises en mode AE avec flash automatique. (Ia5fe3, b/157535165)
- Résolution du problème d'aperçu étiré sur les appareils Nexus 4 équipés d'Android L (niveaux d'API 21 et 22). (I4d407, b/158749159)
- L'implémentation de la classe de base
OnImageCapturedCallback#onCaptureSuccess
ne ferme plus l'image. Cela permet d'éviter tout comportement inattendu pour les développeurs. Les développeurs ne doivent pas utiliser super.onCaptureSuccess pour fermer l'image. (Ifbf9c) - La variante androidx de l'annotation expérimentale a été abandonnée pour assurer la parité avec Kotlin. Elle a été remplacée par l'annotation RequiresOptIn, et le lint pour Java a été mis à jour pour prendre en charge à la fois la nouvelle annotation Kotlin et la nouvelle variante androidx. (I52495, b/151331381)
Camera-Camera2 version 1.0.0-beta11
14 octobre 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta11
. Liste des commits de la version 1.0.0-beta11
Nouvelles fonctionnalités
- Prise en charge de l'API Android 11
CONTROL_ZOOM_RATIO
pour les zooms sur les appareils Android 11 ou versions ultérieures contenant une valeurCONTROL_ZOOM_RATIO_RANGE
valide. (I62cc6)
Corrections de bugs
- Résolution de l'exception NumberFormatException lorsque l'ID de l'appareil photo ne correspondait pas à un entier. (Ib2228)
- Amélioration de la latence d'initialisation de CameraX et de bindToLifecycle. (I61dc5)
- La création de cas d'utilisation ne nécessite pas d'initialisation de CameraX. Toutes les configurations spécifiques à l'implémentation sont définies au niveau du cas d'utilisation (UseCase) une fois qu'il est associé à une instance de Camera dont l'API publique est
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
renvoieSurface.ROTATION_0
s'il est appelé avant d'être associé à une instance de Camera, à moins qu'une rotation cible n'ait été définie dans le compilateur ou dans le cas d'utilisation. (I80fcd)
Camera-Core version 1.0.0-beta11
14 octobre 2020
Publication d'androidx.camera:camera-core:1.0.0-beta11
. Liste des commits de la version 1.0.0-beta11
Nouvelles fonctionnalités
- Prise en charge de l'API Android 11 CONTROL_ZOOM_RATIO
pour les zooms sur les appareils Android 11 ou versions ultérieures contenant une valeur CONTROL_ZOOM_RATIO_RANGE
valide. (I62cc6)
Corrections de bugs
- Résolution de l'exception NumberFormatException lorsque l'ID de l'appareil photo ne correspondait pas à un entier. (Ib2228)
- La création de cas d'utilisation ne nécessite pas d'initialisation de CameraX. Toutes les configurations spécifiques à l'implémentation sont définies au niveau du cas d'utilisation (UseCase) une fois qu'il est associé à une instance de Camera dont l'API publique est
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
renvoieSurface.ROTATION_0
s'il est appelé avant d'être associé à une instance de Camera, à moins qu'une rotation cible n'ait été définie dans le compilateur ou dans le cas d'utilisation. (I80fcd)
Camera-Core version 1.0.0-beta10
23 septembre 2020
Publication d'androidx.camera:camera-core:1.0.0-beta10
. Liste des commits de la version 1.0.0-beta10
Corrections de bugs
- Correction d'un bug qui affectait la validation de la destination d'enregistrement de fichier pour la capture d'image. (I8c565, b/167697553)
Camera-Camera2 version 1.0.0-beta10
23 septembre 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta10
. Liste des commits de la version 1.0.0-beta10
Corrections de bugs
- Version prenant en charge Camera-Core 1.0.0-beta10.
Camera-Camera2 version 1.0.0-beta09
16 septembre 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta09
. Liste des commits de la version 1.0.0-beta09
Modifications apportées à l'API
- Au lieu de fournir des méthodes statiques, Camera2CameraInfo utilise une instance CameraInfo lors de sa création pour récupérer les informations liées à Camera2. (I5b844)
Corrections de bugs
- Résolution du problème de format de cible sur les tablettes. Le format 16:9 doit être sélectionné lorsque le format cible est défini sur
AspectRatio.RATIO_16_9
. (Ib7fcf, b/151969438) - Lancement d'une exception
InitializationException
pour permettre à l'application de gérer correctement l'erreur AssertionError lors de la création de CameraCharacteristics. (I89c8c, b/160524721) - Ajout d'interfaces expérimentales pour ExposureCompensation. (If96c7)
Camera-Core version 1.0.0-beta09
16 septembre 2020
Publication d'androidx.camera:camera-core:1.0.0-beta09
. Liste des commits de la version 1.0.0-beta09
Modifications apportées à l'API
- Correction du bug où la fenêtre d'affichage était marquée comme non nulle dans UseCaseGroup. Les développeurs devraient pouvoir créer une fenêtre d'affichage sans avoir à définir ce paramètre. (Ie3d2e)
- Ajout d'interfaces expérimentales pour
ExposureCompensation
. (If96c7) - Autorisation de la rotation arbitraire de la cible pour l'aperçu. Les informations sur la transformation sont calculées et renvoyées à l'utilisateur à la volée via un nouveau rappel
TranformationInfoListener
. (I21470)
Corrections de bugs
- Résolution du problème qui empêchait le flash de s'allumer sur certains appareils. Cela survenait lorsque le mode flash était défini sur
FLASH_MODE_ON
pour prendre une photo et était remplacé parFLASH_MODE_OFF
lors du déclenchement du flash. Ce symptôme est semblable à celui de l'activation du mode lampe de poche. (Ib4451, b/162568128) - Forçage de PreviewView afin d'utiliser TextureView si l'effet d'extension est activé et que l'implémentation de la bibliothèque du fournisseur doit exécuter un processus spécial sur la surface de sortie. (I0c3cc)
- Correction de la fuite d'activité/de fragment lors de la transmission d'un contexte d'activité/de fragment à
ProcessCameraProvider.getInstance(Context)
.
Problèmes connus
- Lorsque ViewPort est défini, le rectangle de recadrage d'ImageCapture peut être incorrect sur les appareils qui font pivoter le tampon d'image dans la couche d'abstraction matérielle (HAL). Ce problème sera résolu dans la prochaine version.
Camera-Camera2 version 1.0.0-beta08
19 août 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta08
. Liste des commits de la version 1.0.0-beta08
Corrections de bugs
- Optimisation de bindToLifecycle pour qu'il s'exécute rapidement sur le thread principal. (I1d57e)
- DisplayOrientedMeteringPointFactory utilise une instance CameraInfo au lieu d'un CameraSelector. Il existe donc un mappage direct avec l'appareil photo pour lequel la fabrique génère des points. Toutes les classes qui utilisent DisplayOrientedMeteringPointFactory utilisent également une instance de CameraInfo au lieu de CameraSelector. (I400c1)
- Correction d'un problème de groupement de tailles de format de résolution automatique selon lequel une taille 16:9 mod16 (864 x 480) était sélectionnée lorsque le paramètre de résolution cible correspondait à 2 016 x 1 080) et qu'il existe une autre taille 16:9 prise en charge (1 920 x 1 080). (I53167, b/159363774)
- Résolution du problème lié à CameraControl dans lequel une condition de concurrence ne fonctionne pas. (I2279f, b/152333890, b/160714166)
Camera-Core version 1.0.0-beta08
19 août 2020
Publication d'androidx.camera:camera-core:1.0.0-beta08
. Liste des commits de la version 1.0.0-beta08
Modifications apportées à l'API
DisplayOrientedMeteringPointFactory
utilise une instanceCameraInfo
au lieu deCameraSelector
. Il existe donc un mappage direct avec l'appareil photo pour lequel la fabrique génère des points. Toutes les classes qui utilisentDisplayOrientedMeteringPointFactory
exploitent également une instanceCameraInfo
au lieu deCameraSelector
. (I400c1)
Corrections de bugs
- Pour la capture d'image, remplacez l'indicateur horizontal de retournement dans les métadonnées en fonction de la direction de l'appareil photo. (I28499)
- L'initialisation ne devrait plus planter lorsque vous utilisez un contexte qui ne renvoie pas d'objet Application à partir de
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Camera2 version 1.0.0-beta07
22 juillet 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta07
. Liste des commits de la version 1.0.0-beta07
Corrections de bugs
- Résolution du problème d'aperçu étiré sur les anciens appareils Android 5.0. (I0c03a)
- Exclusion de certaines tailles compatibles JPEG qui entraînent un problème WYSIWYG sur certains appareils. (Ib5128)
Camera-Core version 1.0.0-beta07
22 juillet 2020
Publication d'androidx.camera:camera-core:1.0.0-beta07
. Liste des commits de la version 1.0.0-beta07
Modifications apportées à l'API
- La fusion du style
FIT_CENTER
,FIT_START
etFIT_END
avecFIT
.FIT
signifie que le rectangle de recadrage renvoyé correspond au rectangle maximum possible pour le capteur. (Ia73c3) - Le rectangle de recadrage de l'aperçu est configuré en fonction de la fenêtre d'affichage. Les utilisateurs finaux ne devraient voir que la zone couverte par le rectangle de recadrage. (I142a4)
Corrections de bugs
- Résolution du problème d'aperçu étiré sur les anciens appareils Android 5.0. (I0c03a)
- Correction de l'exception
ConcurrentModificationException
lors de la dissociation de cas d'utilisation. (I371c0)
Camera-Camera2 version 1.0.0-beta06
24 juin 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta06
. Liste des commits de la version 1.0.0-beta06
Modifications apportées à l'API
- Ajout d'interfaces expérimentales pour le filtrage des appareils photo en fonction de l'ID et des caractéristiques (CameraCharacteristics) de l'appareil photo. (I28f61)
Corrections de bugs
- Résolution du problème de mise au point de startFocusAndMetering sur les appareils Samsung Galaxy S7. (If3be7, b/159039233)
- Résolution du problème de non-fermeture de l'appareil photo une fois l'application fermée. (I7a7b3)
- Résolution du problème d'affichage de l'aperçu en cas d'utilisation répétée du contacteur de l'appareil photo lors de l'utilisation de l'implémentation SurfaceView correspondant à PreviewView. (I920ce)
CameraControl#startFocusAndMetering
échoue si aucun des points de mesure spécifiés ne peut générer de rectangles de mesure valides. (Id53ce)
Camera-Core version 1.0.0-beta06
24 juin 2020
Publication d'androidx.camera:camera-core:1.0.0-beta06
. Liste des commits de la version 1.0.0-beta06
Modifications apportées à l'API
- Ajout d'interfaces expérimentales pour le filtrage des appareils photo en fonction de l'ID et des caractéristiques (CameraCharacteristics) de l'appareil photo. (I28f61)
Corrections de bugs
- CameraX peut désormais être configuré avec
ProcessCameraProvider#configureInstance()
avant d'appelerProcessCameraProvider#getInstance()
. Cela permet de personnaliserCameraXConfig
sans implémenterCameraXConfig.Provider
dans la classe Application de l'application. (Ia1a8d) CameraControl#startFocusAndMetering
échoue si aucun des points de mesure spécifiés ne peut générer de rectangles de mesure valides. (Id53ce)
Camera-Camera2 version 1.0.0-beta05
10 juin 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta05
. Liste des commits de la version 1.0.0-beta05
Corrections de bugs
- Résolution du problème de plantage au démarrage de l'application lorsque l'appareil photo était initialisé et que le téléphone était en mode Ne pas déranger. Une exception
InitializationException
contient un élémentCameraUnavailableException
qui est défini sur l'élémentListenableFuture
du résultat d'initialisation au lieu de faire planter l'application. (I9909a, b/149413835) - Résolution du problème de plantage qui survenait lors de l'appel de
startFocusAndMetering
sur des appareils dont la valeurCONTROL_AF_STATE
était nulle. (Ife55e, b/157084254)
Camera-Core version 1.0.0-beta05
10 juin 2020
Publication d'androidx.camera:camera-core:1.0.0-beta05
. Liste des commits de la version 1.0.0-beta05
Modifications apportées à l'API
- Résolution du problème de plantage au démarrage de l'application lorsque l'appareil photo était initialisé et que le téléphone était en mode Ne pas déranger. Une exception
InitializationException
contient un élémentCameraUnavailableException
qui est défini sur l'élémentListenableFuture
du résultat d'initialisation au lieu de faire planter l'application. (I9909a, b/149413835)
Corrections de bugs
- Mise à jour des javadocs de
setTargetResolution
etsetTargetRotation
. (Iae16f)
Camera-Camera2 version 1.0.0-beta04
27 mai 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta04
. Liste des commits de la version 1.0.0-beta04.
Corrections de bugs
- Applications autorisées à définir n'importe quel paramètre de demande de capture camera2 via
Camera2Interop
sans provoquer de plantage. Notez si le remplacement de paramètres entraîne des problèmes. La stabilité et le comportement ne sont pas garantis lors du remplacement des paramètres avec Camera2Interop. (Ibe5a1, b/149103700) - L'initialisation automatique est corrigée lors de l'utilisation d'une application sur un appareil qui utilise des pseudo-paramètres régionaux. (I3bef3, b/154767663)
- Conversion du journal d'erreurs lié au cas d'utilisation dissocié en journal de débogage sur Camera2CameraImpl. (I1a565, b/154422490)
- Résolution d'un problème qui entraînait l'affichage d'une image trop sombre parfois, même lorsque le flash était déclenché. (I5d9fa, b/149729613)
- Correction d'un bug où le tampon dans
ImageProxy
à partir d'ImageCapture
n'était pas rembobiné. (I0c455, b/153249512) - Résolution des problèmes de liaison d'ImageCapture uniquement : (1) Échec de la prise de photos avec MAX_QUALITY ; (2) Qualité d'image médiocre, car l'exposition automatique ne fonctionne pas. (I17782, b/145326998)
- Amélioration de la fiabilité de la réouverture de l'appareil photo lorsque celui-ci est déconnecté par un autre processus ou par un autre chemin de code qui accapare l'appareil photo. (I1fbc3, b/153714651)
Camera-Core version 1.0.0-beta04
27 mai 2020
Publication d'androidx.camera:camera-core:1.0.0-beta04
. Liste des commits de la version 1.0.0-beta04
Modifications apportées à l'API
- Ajout d'une API expérimentale,
CameraXConfig.Builder#setSchedulerHandler()
, pour définir le gestionnaire utilisé en interne par la pile de l'appareil photo CameraX. Cette nouvelle API etCameraXConfig.Builder#setCameraExecutor()
devraient permettre un contrôle total des threads utilisés par la pile de l'appareil photo CameraX. (I7bf32, b/121160431)
Corrections de bugs
- Résolution du problème de plantage dans
ImageAnalysis
, où l'accès àImageProxy
avait lieu après la fermeture d'ImageReaderProxy
. Tous les élémentsImageProxy
reçus parAnalyzer
doivent maintenant être fermés avant la fermeture d'ImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Suppression du paramètre
CameraInfo
dePreviewView#createSurfaceProvider()
.PreviewView
le récupère désormais en interne à partir deSurfaceRequest
. (If18f0, b/154652477) - L'initialisation automatique est corrigée lors de l'utilisation d'une application sur un appareil qui utilise des pseudo-paramètres régionaux. (I3bef3, b/154767663)
- Résolution d'un problème qui entraînait l'affichage d'une image trop sombre parfois, même lorsque le flash était déclenché. (I5d9fa, b/149729613)
- Résolution d'un problème lié à
ImageAnalysis
qui entraînait la réception d'images à analyser lors de plusieurs appels à setAnalyzer/clearAnalyzer. (I6169f, b/151605317, b/153514544) - Correction d'un bug où le tampon dans
ImageProxy
à partir d'ImageCapture
n'était pas rembobiné. (I0c455, b/153249512) - Résolution du problème qui empêchait le premier appareil photo de la liste
CameraManager
prise en charge d'être toujours sélectionné. (I4c624, b/153418028) - Résolution du problème de plantage intermittent causé par le paramètre
Preview.SurfaceProvider
qui ne libérait pas la surface précédemment demandée.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Camera-Camera2 version 1.0.0-beta03
15 avril 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta03
. Liste des commits de la version 1.0.0-beta03
Corrections de bugs
- Correctifs permettant la publication de
camera-core
Camera-Core version 1.0.0-beta03
15 avril 2020
Publication d'androidx.camera:camera-core:1.0.0-beta03
. Liste des commits de la version 1.0.0-beta03
Corrections de bugs
- Correction d'une régression à partir de la version bêta 03, où l'appel de
bindToLifecycle()
sans aucunUseCase
générait une exception. Cela empêchait la récupération d'un objetCamera
sans la liaison d'unUseCase
.
Camera-Camera2 version 1.0.0-beta02
1er avril 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Corrections de bugs
- Correction d'
ImageInfo.getRotationDegrees()
à partir de l'ImageProxy
généré parImageCapture
afin qu'il corresponde à la valeur de rotation de l'orientation EXIF. (Id4281, b/150802561) - Vous n'avez plus besoin de classer explicitement les dépendances CameraX dans
build.gradle
pour utiliser l'implémentation de CameraX/Camera2 par défaut. Dans les cas où la déclaration de dépendances strictes est requise, toutes les dépendances de CameraX peuvent désormais être incluses dans le fichier de compilation. (I46e88) - Résolution du problème lié à l'exception
IllegalArgumentException
sur les appareils dont la taille d'affichage est inférieure à 640 x 480. (Ife3f2, b/150506192) - Correction de
bindToLifecycle
de sorte qu'il ne modifie le cas d'utilisation que si la liaison aboutit. Le cas d'utilisation était mis à jour précédemment lors de l'appel debindToLifecycle
afin d'effectuer des calculs de résolution. À présent, il n'a plus besoin de mettre à jour le cas d'utilisation pour effectuer les calculs. (I78d9e).
Camera-Core version 1.0.0-beta02
1er avril 2020
Publication d'androidx.camera:camera-core:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Corrections de bugs
- Correction d'
ImageInfo.getRotationDegrees()
à partir de l'ImageProxy
généré parImageCapture
afin qu'il corresponde à la valeur de rotation de l'orientation EXIF. (Id4281, b/150802561) - Correction de
bindToLifecycle
de sorte qu'il ne modifie le cas d'utilisation que si la liaison aboutit. Le cas d'utilisation était mis à jour précédemment lors de l'appel debindToLifecycle
afin d'effectuer des calculs de résolution. À présent, il n'a plus besoin de mettre à jour le cas d'utilisation pour effectuer les calculs. (I78d9e). - Résolution d'un problème où la session de capture du cas d'utilisation
Preview
n'était pas mise à jour lorsque la surface d'aperçu était modifiée après avoir appeléPreview.setSurfaceProvider()
plusieurs fois.
Camera-Camera2 version 1.0.0-beta01
26 février 2020
Publication d'androidx.camera:camera-camera2:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Corrections de bugs
SurfaceRequest.setSurface(Surface)
a été renomméSurfaceRequest.provideSurface(Surface)
, etSurfaceRequest.setWillNotComplete()
SurfaceRequest.willNotProvideSurface()
. (I224fe)- Résolution du problème de format incorrect d'une image enregistrée après avoir modifié la valeur de rotation cible avec
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Correction de l'initialisation des variantes d'application avec ProGuard activé en conservant l'option qui définit le fournisseur
CameraXConfig
par défaut. (I2d6c1)
Camera-Core version 1.0.0-beta01
26 février 2020
Publication d'androidx.camera:camera-core:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Modifications apportées à l'API
- Remplacement de
ListenableFuture
surSurfaceRequest.provideSurface()
parExecutor
etCallback
. Cela simplifie l'API en évitant d'avoir à gérer les exceptions surprovideSurface()
, et fait en sorte que le rappel deprovideSurface()
ne puisse pas être annulé. Les plantages causés par la libération prématurée des surfaces sur les appareils plus anciens peuvent ainsi être évités. L'objetSurfaceRequest.Result
permet désormais de suivre la façon dont une requêteSurfaceRequest
utilise laSurface
fournie. (I7854b) - Remplacement du nom
SurfaceRequest.setSurface(Surface)
parSurfaceRequest.provideSurface(Surface)
et du nomSurfaceRequest.setWillNotComplete()
parSurfaceRequest.willNotProvideSurface()
. (I224fe)
Corrections de bugs
- Résolution du problème de format incorrect d'une image enregistrée après avoir modifié la valeur de rotation cible avec
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Correction de l'initialisation des variantes d'application avec ProGuard activé en conservant l'option qui définit le fournisseur
CameraXConfig
par défaut. (I2d6c1) - Mise à jour de la documentation pour les API en mode Flash afin d'inclure les valeurs possibles. (I4a3ec)
Camera-Camera2 version 1.0.0-alpha10
10 février 2020
Publication d'androidx.camera:camera-camera2:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Corrections de bugs
- Amélioration de la stabilité sur les appareils
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
en assurant la conservation desSurface
s uniquement pendant la durée d'utilisation de Camera2. (I9dac2) - Résolution du problème d'aperçu sous-exposé sur les anciens appareils en ajustant
CONTROL_AE_TARGET_FPS_RANGE
correctement. (1224638)
Camera-Core version 1.0.0-alpha10
10 février 2020
Publication d'androidx.camera:camera-core:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Modifications apportées à l'API
- Mise à jour d'
ImageCapture
pour permettre l'enregistrement d'images dansUri
etOutputStream
. Combinaison des méthodestakePicture
surchargées en une seule. Mise à jour de l'application de test pour utiliserUri
comme exemple canonique. (Ia3bec) Preview.PreviewSurfaceProvider
a été renomméPreview.SurfaceProvider
.SurfaceProvider
n'exige plus des développeurs qu'ils créent leur propreListenableFuture
, et il est désormais possible de fournir uneSurface
via un nouvel objetSurfaceRequest
. La méthodePreview.getPreviewSurfaceProvider()
a été supprimée en raison d'un usage abusif potentiel lorsquePreview
est associé à d'autres classes telles quePreviewView
. (I20105)- Ajout de
getTargetRotation()
etgetTargetName()
àPreview
. (Iceee7) - Ajout de
getTargetRotation()
,getBackpressureStrategy()
etgetImageQueueDepth()
dansImageAnalysis
. (I9d6d9) - Ajout de
getTargetRotation()
etgetCaptureMode()
dansImageCapture()
. (I5bc17) - Les arguments qui étaient auparavant transmis dans
ImageCapture.OnImageSavedCallback.onError()
etImageCapture.OnImageCapturedCallback.onError()
ont été remplacés par un seul argumentImageCaptureException
, qui contient toujours toutes les informations transmises précédemment. - L'argument de fichier précédemment transmis dans
ImageCapture.OnImageSavedCallback.onImageSaved()
a été supprimé. (I750d2) - Les classes
Preview
etImageCapture
sont désormais marquées comme finales. (I2500b) - API mise à jour, avec la fusion des méthodes
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
etgetLinearZoom()
deCameraInfo
dansgetZoomState()
, ce qui renvoie une instanceZoomState
. (Ib19fe) - Suppression des champs d'API
OPTION_TARGET_CLASS
etOPTION_TARGET_NAME
deCameraXConfig
, car ils ne sont destinés qu'à une bibliothèque interne. Constructeur supprimé pourCameraXConfig.Builder
. (I96912) - Suppression de l'obligation pour l'application d'étendre
Application
afin d'initialiser CameraX. CameraX est maintenant initialisé avec une configuration Camera2 par défaut tant que l'artefactcamera-camera2
est inclus dans le fichierbuild.gradle
de l'application. (I58ff5) (b/146923574)
Camera-Camera2 version 1.0.0-alpha09
22 janvier 2020
Publication d'androidx.camera:camera-camera2:1.0.0-alpha09
. Liste des commits de la version 1.0.0-alpha09
Modifications apportées à l'API
Ajout du chemin d'interopérabilité de Camera2 pour extraire un ID d'appareil photo Camera2. Vous pouvez extraire l'ID de l'appareil photo de
CameraInfo
à l'aide deCamera2CameraInfo.extractCameraId()
. L'exemple de code suivant montre comment procéder :Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
La classe
Camera2CameraInfo
nécessite la classe markerClassExperimentalCamera2Interop
.
Camera-Core version 1.0.0-alpha09
22 janvier 2020
Publication d'androidx.camera:camera-core:1.0.0-alpha09
. Liste des commits de la version 1.0.0-alpha09
Modifications apportées à l'API
- Le paramètre
SurfaceOrientedMeteringPointFactory
useCaseForSurface
a été renomméuseCaseForAspectRatio
, et la documentation de référence a été étoffée. - Les méthodes
FocusMeteringAction.Builder.from()
sont remplacées par les constructeursFocusMeteringAction.Builder()
. - Suppression de
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. Les applications doivent utiliser le constructeur qui accepte un paramètreDisplay
et transmet l'affichage actuel. - Améliorations de Javadoc pour les API de ciblage et de mesure concernant les indicateurs
MeteringMode
et 3A, et utilisation du paramètreDisplay
. - Documentation de référence étoffée pour
setZoomRatio
etsetLinearZoom
.
Corrections de bugs
- Résolution des problèmes liés à la fermeture, puis à l'ouverture des appareils photo, ce qui entraînait l'échec de la vérification de la condition préalable.
- Correction d'une exception
ConcurrentModificationException
qui pouvait se produire lors de l'utilisation des API Torche et Zoom. - Résolution du problème lié à la sélection de résolutions plus proches de la résolution demandée lorsqu'une taille mod16 était disponible.
- Les API
startFocusMetering
etcancelFocusMetering
se comportent à présent comme indiqué, avec des délais corrects et la génération d'erreurs lorsque nécessaire. - Résolution d'un problème qui survenait lorsqu'une résolution cible spécifique était demandée avec un format de recadrage sur un appareil non compatible avec ce type de tailles. À présent, une taille non recadrée d'une résolution suffisante par rapport à la requête d'origine est sélectionnée, le cas échéant.
Camera-Camera2 version 1.0.0-alpha08
18 décembre 2019
Publication d'androidx.camera:camera-camera2:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Problèmes connus
- Toutes les options de demande de capture de Camera2 ne fonctionnent pas lorsque vous utilisez l'interopérabilité Camera2. Si l'option demandée n'est pas compatible, la session ne démarre pas, et une erreur de ce type peut s'afficher :
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Corrections de bugs
- Résolution d'un problème d'affichage d'un écran noir d'aperçu après la rotation ou le basculement entre les appareils photo avant ou arrière pour les niveaux d'API 21 et 22.
Modifications apportées à l'API
- Expérimental : ajout d'un chemin d'interopérabilité camera2 pour l'extraction de l'identifiant de l'appareil photo.
Camera-Core version 1.0.0-alpha08
18 décembre 2019
Publication d'androidx.camera:camera-core:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Problèmes connus
- Les applications qui utilisent
PreviewView
ouCameraView
n'ont pas toujours le bon format d'aperçu. Cela se produit après la mise en pause ou la reprise sur certains appareils FULL, tels que le Pixel2.
Corrections de bugs
- Mise à jour de la documentation pour
FocusMeteringAction
etCameraControl
. - Implémentation de
TorchControl
pourenableTorch()
etgetTorchState()
.
Modifications apportées à l'API
- Masquage d'IntDefs et déplacement des constantes IntDef en dehors de la définition IntDef.
rotationDegrees
déplacé de la classeOnImageCaptureCallback
versImageInfo
.rotationDegrees
déplacé de la classeAnalyzer
versImageInfo
.
Camera-Camera2 version 1.0.0-alpha07
4 décembre 2019
Publication d'androidx.camera:camera-camera2:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07 de camera-camera2
Camera2Config
peut désormais être utilisé pour initialiser et configurer une implémentation basée sur Camera2 pour CameraX. Pour en savoir plus sur l'utilisation de cette fonctionnalité lors de l'initialisation, consultez la section camera-core dans les notes de version.- L'interopérabilité de camera2 est désormais identifiée comme expérimentale et déplacée vers un package distinct,
androidx.camera.camera2.interop.
.
Camera-Core version 1.0.0-alpha07
4 décembre 2019
Publication d'androidx.camera:camera-core:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07 de camera-core
Notez que cette version alpha comporte des changements majeurs en préparation de la version bêta. Nous vous recommandons de passer en revue les modifications et de partager vos commentaires dans le groupe Google de CameraX. Pour les développeurs qui utilisent CameraX dans les applications du Play Store, nous vous recommandons d'attendre la version bêta officielle avant de mettre à niveau la bibliothèque dans vos applications.
Modifications apportées à l'API
Important : L'initialisation de CameraX a changé. Les applications doivent implémenter
CameraXConfig.Provider
et utiliser la configurationCamera2Config
par défaut fournie parandroidx.camera.camera2
. Voici un exemple d'utilisation courant :import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
La classe CameraX a été supprimée. Les éléments
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
ethasCamera()
précédemment fournis par l'appel de la classe CameraX sont désormais disponibles viaProcessCameraProvider
.Une instance par processus de
ProcessCameraProvider
est obtenue de manière asynchrone à l'aide de la méthode statiqueProcessCameraProvider.getInstance()
, qui renvoie un ListenableFuture qui fournit leProcessCameraProvider
une fois l'opération terminée. Ici, elle apparaît dansonCreate()
pour une utilisation courante. Vous pouvez passer des appels àgetInstance()
ultérieurement dans le cycle de vie de l'activité pour différer la latence d'initialisation (par exemple, lorsqu'une action de l'utilisateur ouvre l'interface utilisateur d'un appareil photo).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); }
Un écouteur peut être ajouté au
ListenableFuture
renvoyé pargetInstance()
. Ainsi, le fournisseur d'appareil photo pourra être récupéré à partir deFuture
sans bloquer au niveau deFuture.get()
.cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
La sélection de l'appareil photo est désormais effectuée par un sélecteur au lieu d'un cas d'utilisation spécifique.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
reçoit le propriétaire du cycle de vie, le sélecteur d'appareil photo et les cas d'utilisation, qui sont ensuite liés au propriétaire du cycle de vie donné et s'exécutent pour l'appareil photo sélectionné.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Les classes "Config" des cas d'utilisation sont supprimées. Créez plutôt des cas d'utilisation directement en définissant des options au niveau du compilateur de chaque cas d'utilisation. Exemple :
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Le cas d'utilisation Preview a été mis à jour pour accepter une surface créée et gérée par l'application afin de garantir les bonnes pratiques Android. Il est fortement recommandé d'utiliser la classe de vue
PreviewView
fournie dans le package camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Consultez la documentation pour joindre une surface gérée par une application. Dans ce cas, l'application gère le cycle de vie de la surface.
Important : L'implémentation de la méthode
ImageAnalysis
doit appelerimage.close()
au niveau des images reçues lorsque vous avez fini de les utiliser. Sinon, il est possible que vous ne receviez pas les nouvelles images ou que l'appareil photo se fige, en fonction du paramètre de contre-pression. Pour en savoir plus, consultez la documentation de référence.ImageAnalysis ImageReaderMode
est désormais remplacé par une stratégie de contre-pressionintdef
.ImageProxy.getImage()
est marqué comme expérimental. Les applications doivent annoter l'utilisation, par exemple via@androidx.camera.core.ExperimentalGetImage
.L'annotation
UIThread
n'est plus obligatoire pourAnalyzer
.La fonction
ImageAnalysis.clearAnalyzer()
a été ajoutée pour supprimer un analyseur.Les écouteurs avec plusieurs méthodes sont maintenant accompagnés de la mention "Callback" :
ImageCapture.OnImageCapturedListener
est désormaisImageCapture.OnImageCapturedCallback
.ImageCapture.OnImageSavedListener
est désormaisImageCapture.OnImageSavedCallback
.VideoCapture.OnVideoSavedListener
est désormaisVideoCapture.OnVideoSavedCallback
.
Les énumérations ont été remplacées par IntDef.
Des commandes de zoom ont été ajoutées :
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
CameraInfo.hasFlashUnit()
a été ajouté pour déterminer si le matériel flash ou la lampe de poche sont présents.CameraInfo.isFlashAvailable()
a été supprimé. La lampe de poche remplace la fonctionnalité Flash. Pour en savoir plus, consultez la documentation de référence.Les champs
ImageCapture.Metadata
sont remplacés par les accesseurs get/set/is.startFocusMetering
etcancelFocusMetering
renvoient désormaisListenableFutures
, qui représentent l'opération asynchrone de l'appel.Les éléments
MeteringPoints
fonctionnent désormais comme des handles pour les actions de mesure et sont générés par des fabriques. Les applications doivent utiliser les fabriques existantes plutôt que des fabriques personnalisées.
Problèmes résolus
- Résolution d'un problème qui survenait lors de la prise d'une photo après une pause où des photos étaient en attente de finalisation.
- Problème connu :
CameraControl.enableTorch()
fonctionne, mais la valeurListenableFuture<Void>
renvoyée est toujours un étatcomplete(success)
immédiat, même en l'absence de flash. Les versions ultérieures corrigeront ce comportement : en l'absence de flash,enableTorch(true)
échouera immédiatement (aucune demande ne sera envoyée àCaptureSession
), etTorchState
restera désactivé. - Problème connu :
startFocusAndMetering
etcancelFocusAndMetering
lancent et annulent la mesure de la mise au point, mais renvoient immédiatement un étatcompleted (success)
ne représentant pas le comportement documenté. L'élémentFocusMeteringResult
deListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
est un résultat fictif dont l'état estisFocusSuccessful()
et qui est toujours "false", ce qui diffère du comportement souhaité et documenté. - Problème connu : une fabrique de points de mesure à utiliser avec les événements tactiles
PreviewView
est en cours de développement. Pour le moment, les applications qui relient des surfaces gérées personnalisées peuvent utiliser les fabriques de points de mesure existantes. Sinon, aucune fonctionnalité de mise au point tactile n'est disponible pourPreviewView
.
Camera-Camera2 et Camera-Core version 1.0.0-alpha06
9 octobre 2019
Publication d'androidx.camera:camera-camera2:1.0.0-alpha06
et d'androidx.camera:camera-core:1.0.0-alpha06
. Il s'agit des commits inclus dans camera-camera2:1.0.0-alpha06
et de ceux inclus dans camera-core:1.0.0-alpha06
.
Nouvelles fonctionnalités
Modifications apportées à la configuration des formats :
setTargetAspectRatioMode()
a été ajouté et accepte un argument d'énumération. Le format est donc défini avec les optionsRATIO_4_3
ouRATIO_16_9
au lieu d'un format arbitraire. Ce changement permet de mieux refléter le fait que seuls certains formats sont fournis par l'appareil photo, plutôt que n'importe quel format arbitraire.- Actuellement, les seuls formats disponibles sont 16:9 et 4:3. Seuls certains appareils proposent le format 1:1 et seulement à des résolutions limitées. Les applications qui conçoivent une interface ou un traitement 1:1 doivent utiliser les formats 16:9 ou 4:3 plus flexibles, et recadrer l'écran ou traiter une sous-région.
- Ces formats visent à utiliser la zone de capteurs maximale.
getTargetAspectRatio()
a été ajouté aux API de configuration des cas d'utilisation et renvoie le format pour lequel la sortie du cas d'utilisation est ciblée.- La méthode
setTargetAspectRatio(Rational aspectRatio)
a été remplacée parsetTargetAspectRatioCustom(Rational aspectRatio)
pour ImageCapture. Lorsqu'elle est définie, la sortie ImageCapture est recadrée en conséquence.
API d'exécuteur
- Les fonctions suivantes acceptent un paramètre qui permet à l'application de contrôler l'exécuteur sur lequel la fonction a lieu.
- API
Preview.setOnPreviewOutputUpdateListener()
. Si l'exécuteur n'est pas présent pour cette fonction, elle s'exécute sur le thread principal. Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
- API
Ajout de CameraInfo avec les API de vérification de la disponibilité du flash et de rotation des capteurs.
Ajout de
CameraInfo
et d'une méthodegetCameraInfo
, qui permet aux applications de vérifier si des informations "CameraInfo" sur l'orientation de l'objectif sont disponibles et s'il existe un flash sur cet appareil photo. Exemple :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); }
CameraInfo.getSensorRotationDegrees()
a été ajouté. Cet attribut indique l'orientation du capteur de l'appareil photo par rapport à l'orientation naturelle de ce dernier ou, pour plus de commodité, par rapport à une orientation décrite par une rotation de la surface (qui désigne une orientation par rapport à l'orientation naturelle).
Modifications de l'API et corrections de bugs
- Format : pour chaque cas d'utilisation, les applications ne doivent appeler que
setTargetResolution()
ousetTargetAspectRatio()
. L'appel des deux éléments sur le même compilateur renvoie une erreur.- En général, il est recommandé d'utiliser
setTargetAspectRatio()
en fonction de la conception de l'interface utilisateur de l'application. Des solutions spécifiques sont basées sur le cas d'utilisation. Par exemple, l'aperçu est proche de la résolution d'écran, et la capture d'image fournit des images fixes en haute résolution. Pour en savoir plus, consultez le tableau des résolutions automatiques. - Utilisez
setTargetResolution()
dans des cas plus spécifiques, par exemple lorsqu'une résolution minimale (pour enregistrer les calculs) ou maximale (pour le traitement des détails) est requise.
- En général, il est recommandé d'utiliser
- API d'exécuteur : suppression de l'appel
setCallbackHandler()
dans les API de configuration de cas d'utilisation. À la place, les applications peuvent définir l'exécuteur en tant que paramètre dans plusieurs autres API qui spécifient un rappel. - Mise à jour des annotations dont la valeur est "null" pour diverses fonctions.
- Le problème qui entraînait le déclenchement de
java.lang.IllegalStateException at Camera$StateCallback.onError
à l'ouverture de l'appareil photo a été résolu. - Résolution du problème qui entraînait la sélection de résolutions trop petites (moins de 640 x 480) lorsque l'application demandait des résolutions plus grandes ou par défaut, ce qui générait une image d'aperçu grossière ou floue. Les applications qui nécessitent des résolutions plus faibles peuvent les demander explicitement.
- Résolution d'un problème qui entraînait l'affichage d'un écran noir (échec du démarrage de l'appareil photo) après un retour d'intent qui lançait une autre application d'appareil photo.
- Correction d'un bug qui provoquait l'erreur suivante lorsque des applications étaient démarrées ou arrêtées à plusieurs reprises :
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Correction de l'erreur suivante qui se produisait lors de la désactivation d'ImageAnalysis :
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Ajout de tests supplémentaires pour le flux de déconnexion de l'appareil photo.
- Amélioration de la robustesse du système de test lors des tests consécutifs des appareils photo.
Camera-Camera2 et Camera-Core version 1.0.0-alpha05
5 septembre 2019
Publication d'androidx.camera:camera-camera2:1.0.0-alpha05
et d'androidx.camera:camera-core:1.0.0-alpha05
. Il s'agit des commits inclus dans camera-camera2:1.0.0-alpha05 et de ceux inclus dans camera-core:1.0.0-alpha05.
Modification de l'API avec changement de nom des variables d'erreur de cas d'utilisation :
ImageCapture.UseCaseError
a été renomméImageCapture.ImageCaptureError
.VideoCapture.UseCaseError
a été renomméVideoCapture.VideoCaptureError
.
Ajout de l'API
CameraControl
avec les API Appuyer pour sélectionner.Ajout d'une API permettant d'obtenir
CameraControl
à partir de CameraX, sélectionné par orientation de l'objectif :CameraX.getCameraControl(LensFacing lensFacing)
Ajout de
MeteringPointFactory
,MeteringPoint
,MeteringMode
etFocusMeteringAction
pour exécuter la fonctionnalité Appuyer pour sélectionner :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();
Ajout de l'API pour
CameraControl
pour démarrer et annuler la mesure de la mise au point :getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Ajout d'API pour les fabriques de points de mesure permettant de convertir les coordonnées des pressions en coordonnées de capteur, en fonction des classes de vue :
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Mise en application de l'appel des méthodes suivantes sur le thread principal (UI), qui génère une exception
IllegalStateException
lorsqu'elles ne sont pas présentes. Les versions ultérieures permettront l'utilisation sur d'autres threads et assureront la sérialisation.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Différents paramètres de configuration acceptent désormais les paramètres "null", et les getters correspondants peuvent renvoyer la valeur "null".
Résolution du problème qui survenait pendant les tests sur les émulateurs qui ne prennent pas en charge les paramètres AF/AE/AWB.
Correction d'un bug qui entraînait un plantage en cas de rotation lors de l'analyse de l'image.
Correction d'un bug qui provoquait l'affichage de l'aperçu au noir au démarrage (pas de données d'appareil photo) après la rotation ou le basculement entre les appareils photo avant et arrière.
Suppression des tests pour plusieurs cas d'utilisation simultanés d'analyse d'images. Pour garantir la compatibilité, les applications ne doivent joindre qu'un seul cas d'utilisation d'analyse d'image.
Ajout de tests Robolectric initiaux pour un appareil photo fictif dans la suite de tests de l'appareil photo (en cours).
Suppression du test de Camera2Inititalizer, car sa couverture n'était pas claire ou prêtait à confusion.
Camera-Camera2 et Camera-Core version 1.0.0-alpha04
7 août 2019
Publication d'androidx.camera:camera-camera2:1.0.0-alpha04
et d'androidx.camera:camera-core:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
Modifications apportées à la sélection du format et de la résolution
L'objectif de CameraX est d'initialiser correctement une session d'appareil photo. Par conséquent, CameraX fait des compromis entre le format et la résolution en fonction de la capacité de l'appareil afin d'atteindre son objectif premier : démarrer une session de capture. Il est donc possible que les requêtes exactes ne soient pas traitées. Voici plusieurs raisons possibles :
- Appareils non compatibles avec la résolution demandée
- Problèmes de compatibilité, par exemple sur les anciens appareils sur lesquels certaines résolutions doivent être utilisées pour fonctionner correctement
- Disponibilité de certains formats uniquement avec certaines proportions sur certains appareils
- Préférence pour "mod16 le plus proche" pour l'encodage JPEG ou vidéo (voir
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
).
Bien que CameraX crée et gère la session, vérifiez toujours les tailles d'image renvoyées dans la sortie du cas d'utilisation de votre code et apportez les ajustements nécessaires.
Des modifications ont été apportées à la définition des résolutions et des formats, afin de rendre l'API plus claire :
- Le cas d'utilisation Preview est désormais considéré comme utilisant le format 4:3 par défaut si aucun format n'est défini.
- Lorsque CameraX considère en interne les modifications apportées aux résolutions et aux formats demandés en fonction de la capacité de l'appareil, il essaie d'abord de conserver le même format (via l'un des appels
setTargetAspectRatio
ousetTargetResolution
). - Une version "mod16 le plus proche" de la résolution est considérée comme ayant le même format.
Mode de non blocage de l'analyse d'images
- Le comportement d'
ImageReaderMode.ACQUIRE_LATEST_IMAGE
n'est plus bloquant. Il acquiert la dernière image de la file d'attente, mais supprime les images inutilisées en continu pour que le pipeline de l'appareil photo évite le blocage. - L'analyseur peut contenir une seule image indéfiniment, sans bloquer le pipeline.
- Si l'application fournit un exécuteur qui se bloque ensuite, le cas d'utilisation d'analyse d'image se bloquera.
- L'exécuteur par défaut défini en interne se comporte comme un exécuteur non bloquant.
Corrections de bugs
- Résolution du problème d'expiration du délai d'attente de la convergence de 3A lors de la capture d'images sur des appareils sans mise au point automatique, exposition automatique ni équilibrage automatique du blanc.
- Résolution du problème lié à la prise rapide de photos avec ImageCapture. Correction de l'erreur :
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Résolution du problème qui entraînait l'appel de
setLensFacing
pour un cas d'utilisation, ce qui généraitjava.lang.IllegalArgumentException: Unable to get camera ID for use case
. - Résolution du problème dans le cadre duquel l'appareil LEGACY nécessitait un format spécifique en tant que résolution JPEG maximale.
- Résolution du problème lié à l'arrière-plan de l'application en cours d'ouverture de l'appareil photo.
- Résolution du problème lié à l'API 25 ou inférieure, suppression de l'erreur
checkAndUpdateEglState: invalid current EGLDisplay
. - Résolution du problème lié à la dissociation de l'aperçu après l'activation et le démarrage des extensions.
- Les artefacts de build associés à camera-view et camera-extensions sont désormais publiés en version alpha.
Camera-Camera2 et Camera-Core version 1.0.0-alpha03
2 juillet 2019
Publication d'androidx.camera:camera-core:1.0.0-alpha03
et d'androidx.camera:camera-camera2:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Ajout d'une précision Javadoc pour "target" dans les appels de configuration setTarget
Camera-Core
- Résolution du problème de plantage de la surface d'entrée/sortie non configurée lors d'une ouverture/fermeture rapide ou d'une liaison/dissociation.
- Passage à de nouvelles implémentations d'état.
- Corrections apportées pour que les tests soient plus robustes.
- Le test d'intégration principal affiche désormais le temps de capture des photos.
- Développement d'une classe de compatibilité interne pour les exécuteurs.
- Les images de capture de l'application de test attendent que la fin de la capture de l'image précédente, et la stabilité a été améliorée.
Extensions
- Ajout de vérifications de la gestion des versions.
- Couverture de test supplémentaire : rappels d'événements d'extension.
- Améliorations concernant les images et les métadonnées correspondantes en interne.
- Correction du changement de mode dans l'application de test.
Camera-Camera2 et Camera-Core version 1.0.0-alpha02
5 juin 2019
Publication d'androidx.camera:camera-core:1.0.0-alpha02
et d'androidx.camera:camera-camera2:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02
Corrections de bugs
- Résolution du problème de division par zéro lors de l'utilisation de l'émulateur.
- Correction d'une erreur NullPointerException/Surface Abandoned sur certains appareils lors de la prise rapide de photos tout en détachant lors de la liaison et de la dissociation rapides des cas d'utilisation.
- Résolution d'un problème interne pour que les mises à jour des requêtes de capture s'appliquent de manière cohérente à toutes les surfaces.
- Amélioration de la stabilité lors du redémarrage des cas d'utilisation dans de nouvelles instances d'application.
- Modifications de l'architecture interne pour préparer la prise en charge des exécuteurs dans l'API.
- Clarifications Javadoc supplémentaires sur la gestion du cycle de vie et de la classe CameraX.
- Ajout d'un test d'instrumentation pour l'application de test des performances Antelope.
- Suppression de "-keepattributes Signature" dans la configuration ProGuard de l'application.
Camera-Camera2 et Camera-Core 1.0.0-alpha01
7 mai 2019
Publication d'androidx.camera:camera-core:1.0.0-alpha01
et d'androidx.camera:camera-camera2:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Camera-Lifecycle version 1.0.0-beta11
14 octobre 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta11
. Liste des commits de la version 1.0.0-beta11
Corrections de bugs
<UseCase>.getTargetRotation()
renvoieSurface.ROTATION_0
s'il est appelé avant d'être associé à une instance de Camera, à moins qu'une rotation cible n'ait été définie dans le compilateur ou dans le cas d'utilisation. (I80fcd)
Camera-Lifecycle version 1.0.0-beta10
23 septembre 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta10
. Liste des commits de la version 1.0.0-beta10
Corrections de bugs
- Version prenant en charge Camera-Core 1.0.0-beta10.
Camera-Lifecycle version 1.0.0-beta09
16 septembre 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta09
. Liste des commits de la version 1.0.0-beta09
Camera-Lifecycle version 1.0.0-beta08
19 août 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta08
. Liste des commits de la version 1.0.0-beta08
Corrections de bugs
- L'initialisation ne devrait plus planter lorsque vous utilisez un contexte qui ne renvoie pas d'objet Application à partir de
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Lifecycle version 1.0.0-beta07
22 juillet 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta07
. Liste des commits de la version 1.0.0-beta07
Camera-Lifecycle version 1.0.0-beta06
24 juin 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta06
. Liste des commits de la version 1.0.0-beta06
Modifications apportées à l'API
- CameraX peut désormais être configurée avec ProcessCameraProvider#configureInstance() avant d'appeler ProcessCameraProvider#getInstance(). Cela permet de personnaliser l'élément CameraXConfig sans avoir à implémenter CameraXConfig.Provider dans la classe Application de l'application. (Ia1a8d)
Camera-Lifecycle version 1.0.0-beta05
10 juin 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta05
. Liste des commits de la version 1.0.0-beta05
Corrections de bugs
- Résolution du problème de plantage au démarrage de l'application lorsque l'appareil photo était initialisé et que le téléphone était en mode Ne pas déranger. Une exception
InitializationException
contient un élémentCameraUnavailableException
qui est défini sur l'élémentListenableFuture
du résultat d'initialisation au lieu de faire planter l'application. (I9909a, b/149413835)
Camera-Lifecycle version 1.0.0-beta04
27 mai 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta04
. Liste des commits de la version 1.0.0-beta04
Camera-Lifecycle version 1.0.0-beta03
15 avril 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta03
. Liste des commits de la version 1.0.0-beta03
Corrections de bugs
- Correction d'une régression à partir de la version bêta 03, où l'appel de
bindToLifecycle()
sans aucunUseCase
générait une exception. Cela empêchait la récupération d'un objetCamera
sans la liaison d'unUseCase
. - Correctifs permettant la publication de
camera-core
Camera-Lifecycle version 1.0.0-beta01
26 février 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Corrections de bugs
- Correction de la documentation pour noter que, lors de l'obtention d'un
ProcessCameraProvider
au cours de l'initialisation, une configuration par défaut est utilisée, et que l'extension de la classeApplication
est facultative. (I5e395)
Camera-Lifecycle version 1.0.0-beta02
1er avril 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Corrections de bugs
- Mise à jour pour prendre en charge les corrections de bugs dans les artefacts
camera-camera2:1.0.0-beta02
etcamera-core:1.0.0-beta02
.
Camera-Lifecycle version 1.0.0-alpha10
10 février 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Modifications apportées à l'API
- Ajout de l'annotation
@MainThread
aux méthodes BindToLifecycle, unbind et unbindAll. (I990d2)
Camera-Lifecycle version 1.0.0-alpha03
22 janvier 2020
Publication d'androidx.camera:camera-lifecycle:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Mises à jour
- Différents correctifs et mises à jour pour prendre en charge les modifications apportées à Camera Core et Camera2.
Camera-Lifecycle version 1.0.0-alpha02
18 décembre 2019
Publication d'androidx.camera:camera-lifecycle:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02
Modifications de la dépendance
- Mise à jour pour utiliser
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle version 1.0.0-alpha01
4 décembre 2019
Publication d'androidx.camera:camera-lifecycle:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01 de camera-lifecycle
Remarques relatives à l'API
- L'artefact camera-lifecycle est ajouté. Il fournit l'interface
LifeCycleCameraProvider
et une implémentation appeléeProcessCameraProvider
, qui offre de nombreuses fonctions de la classe CameraX précédente et qui est obtenue via une méthodegetInstance()
. - Les applications doivent inclure la bibliothèque camera-lifecycle pour utiliser CameraX.
- Consultez les remarques de la section camera-core pour découvrir comment initialiser CameraX à l'aide d'un
ProcessCameraProvider
.
Camera-Extensions et Camera-View version 1.0.0
Version 1.0.0-alpha32
15 décembre 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha32
et d'androidx.camera:camera-view:1.0.0-alpha32
. Liste des commits de la version 1.0.0-alpha32
Modifications apportées à l'API
- Suppression des annotations
@RequiresApi(21)
inutiles des classes/interfaces internes. (I8e286, b/204917951) - Mise à jour des fichiers d'API pour l'artefact camera-extensions. (If683a, b/161377155)
Corrections de bugs
- L'application ne peut plus activer les modes d'extension lors de la liaison de
VideoCapture
. Les extensions CameraX ne sont compatibles qu'avecImageCapture
etPreview
.VideoCapture
n'est pas encore pris en charge. Si l'application associeVideoCapture
et active un mode d'extension, une erreurIllegalArgumentException
est générée. (I0d87b) CameraSelector#filter
ne génère plus d'exceptionIllegalArgumentException
lorsque l'ensemble de résultats est vide. (I27804)- L'API
ExtensionsManager#getInstance
a été renomméegetInstanceAsync
, car elle renvoieListenableFuture
. Le suffixe asynchrone du nom de la fonction peut indiquer clairement qu'il s'agit d'une fonction asynchrone. (I279d2) - Suppression du paramètre de résolution de l'API
ExtensionsManager#getEstimatedCaptureLatencyRange
, car les utilisateurs ne peuvent pas identifier quelles tailles sont acceptées pour le cas d'utilisationImageCapture
et ne peuvent pas distinguer les informations de latence renvoyées pour la taille de sortie de capture maximale ou le paramètre de résolution d'entrée. (I74bb2) - Transfert du paramètre
CameraProvider
des fonctionsExtensionsManager
vers l'APIgetInstance()
. De la sorte, les utilisateurs n'ont pas besoin d'ajouter le paramètreCameraProvider
chaque fois qu'ils appellent les fonctionsExtensionsManager
. (Ic7e48)
Version 1.0.0-alpha31
17 novembre 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha31
et d'androidx.camera:camera-view:1.0.0-alpha31
. Liste des commits de la version 1.0.0-alpha31
Modifications apportées à l'API
- Ajout de CameraSelector#filter à l'API publique pour filtrer une liste d'éléments CameraInfos basée sur un CameraSelector. (I105d0)
Corrections de bugs
- Résolution d'un problème de plantage qui survenait lors du changement rapide du mode extensions sur certains appareils. (Iebbef)
Version 1.0.0-alpha30
13 octobre 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha30
et d'androidx.camera:camera-view:1.0.0-alpha30
. Liste des commits de la version 1.0.0-alpha30
Modifications apportées à l'API
- Ajout de l'annotation @RequiresApi(21) à toutes les classes CameraX et suppression de minSdkVersion dans le fichier AndroidManifest.xml. Camera-core sera ainsi facilement intégré aux applications dont la version de SDK minimale est inférieure à 21, mais qui souhaitent utiliser de manière conditionnelle des chemins de code basés sur l'API 21 ou version ultérieure. Pour toute application disposant d'une version de SDK minimale 21 ou ultérieure, cette modification ne nécessite aucune action. (Ie7f2e, b/200599470)
Corrections de bugs
- Correction du problème abstractionMethodError qui survenait lorsque ProGuard était activé. (Iae468, b/201177844)
Version 1.0.0-alpha29
29 septembre 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha29
et d'androidx.camera:camera-view:1.0.0-alpha29
. Liste des commits de la version 1.0.0-alpha29
Modifications apportées à l'API
- L'annotation ExperimentalUseCaseGroup a été supprimée, car les API ne sont plus expérimentales. (I01ef5)
- Suppression de
RotationProvider#removeAllListeners()
. Veuillez utiliserRotationProvider#removeListener(...)
à la place. (Id9d4a) - Mise à jour de la classe RotationReceiver : modification de l'écouteur set/clear pour les actions d'ajout et de suppression (add/remove/removeAll, remove) de la variante setListener qui utilise le thread principal par défaut, et ajout d'une annotation aux méthodes. (Ib1669)
Corrections de bugs
- ExtensionMode#BEAUTY a été renommé FACE_RETOUCH pour présenter correctement le fonctionnement du mode d'extension. (I61f54, b/198515274)
- Résolution du problème de fermeture inattendue de l'appareil photo en cas d'utilisation de CameraController et de PreviewView dans une même activité. (Ibfd18, b/197539358)
Version 1.0.0-alpha28
18 août 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha28
et d'androidx.camera:camera-view:1.0.0-alpha28
. Liste des commits de la version 1.0.0-alpha28
Modifications apportées à l'API
- L'annotation ExperimentalUseCaseGroupLifecycle a été supprimée, car les API ne sont plus expérimentales. (I17b85)
- RotationListener refactorisé et renommé en RotationProvider. Il continue de proposer la même fonctionnalité avec une API légèrement différente. (Idffc5)
- Remplacement du nom TAP_TO_FOCUS_UNSUCCESSFUL par TAP_TO_FOCUS_NOT_FOCUSED et du nom TAP_TO_FOCUS_SUCCESSFUL par TAP_TO_FOCUS_FOCUSED. Finalisation d'OutputSize. (I099fa)
Corrections de bugs
- Suppression des classes
<EffectName><UseCase>Extender
obsolètes, d'ExtensionsErrorListener et des API ExtensionsManager associées. (I3b8c3)
Version 1.0.0-alpha27
21 juillet 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha27
et d'androidx.camera:camera-view:1.0.0-alpha27
. Liste des commits de la version 1.0.0-alpha27
Modifications apportées à l'API
- Passage de l'API de fenêtre d'affichage de l'état expérimental à un niveau supérieur. Suppression de l'annotation expérimentale de l'API. (I717ea)
- Remplacement du nom
CoordinateTransform#getTransform
parCoordinateTransform#transform
et mise à jour JavaDoc. (I864ae)
Corrections de bugs
- Résolution du problème d'étirement du mode
PreviewView PERFORMANCE
lors de son utilisation avec l'interface utilisateur de Compose. (Ie1137, b/183864890)
Version 1.0.0-alpha26
30 juin 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha26
et d'androidx.camera:camera-view:1.0.0-alpha26
. Liste des commits de la version 1.0.0-alpha26
Modifications apportées à l'API
- Ajout d'une méthode
CameraController#getTapToFocusState()
qui expose le dernier résultat de la fonctionnalité Appuyer pour sélectionner. (Iaccb0) - Ajout de fonctionnalités camera-core à CameraController : getters/setters pour le format cible, la résolution cible, le mode de capture, CameraControl et les exécuteurs personnalisés. (Iea8f2)
- Ajout d'une classe RotationReceiver qui reçoit les modifications de rotation de la surface. Permet de définir la rotation cible lorsque l'appareil est en mode portrait ou paysage fixe. (Ib278f)
- Nouvelles API publiques getEstimatedCaptureLatencyRange exposées dans la classe ExtensionsManager. (I6a8ec)
- ExtensionsErrorListener obsolète. Actuellement, cette interface ne sert qu'à vérifier si Preview ou ImageCapture sont manquants lors de l'activation des modes d'extension. CameraX ajoute automatiquement un élément Preview ou ImageCapture supplémentaire pour que les fonctions de l'extension soient opérationnelles. Par conséquent, aucune erreur n'est signalée via cette interface. (I47d9e)
- Nouvelles API publiques ExtensionsManager getInstance, isExtensionAvailable et getExtensionEnabledCameraSelector exposées, abandon des anciennes classes
<EffectName><UseCase>Extender
et des API associées. (I329e6)
Version 1.0.0-alpha25
2 juin 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha25
et d'androidx.camera:camera-view:1.0.0-alpha25
. Liste des commits de la version 1.0.0-alpha25
Modifications apportées à l'API
- Les API ExperimentalCameraFilter ne sont plus au stade expérimental et deviennent des API formelles. Elles peuvent être utilisées sans l'annotation OptIn. (I4bc94)
- Ajout d'un utilitaire qui convertit les coordonnées entre les cas d'utilisation. Exemple d'utilisation : transformation des coordonnées détectée dans le cas d'utilisation ImageAnalysis et mise en évidence de l'objet identifié dans l'aperçu. (I63ab1, b/137515129)
- Suppression de
CameraView
.CameraView
a été remplacé parCameraController
. Consultez le guide de migration pour découvrir comment effectuer la migration. (Id5005)
Corrections de bugs
- Remplacement d'
ExperimentalUseCaseGroupLifecycle
parExperimentalUseCaseGroup
. (I3b2ef, b/159033688)
Version 1.0.0-alpha24
21 avril 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha24
et d'androidx.camera:camera-view:1.0.0-alpha24
. Liste des commits de la version 1.0.0-alpha24
Corrections de bugs
- Remplacement de l'annotation
@Experimental
par@RequiresOptIn
pour les API expérimentales. Pour appeler des API expérimentales, utilisezandroidx.annotation.OptIn
au lieu de l'élément obsolèteandroidx.annotation.experimental.UseExperimental
. (Iff226) - Correction du problème d'étirement de PreviewView sur le Samsung J5 Prime. (Ib10b6)
Camera-Extensions et Camera-View version 1.0.0-alpha23
24 mars 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha23
et d'androidx.camera:camera-view:1.0.0-alpha23
. Liste des commits de la version 1.0.0-alpha23
Modifications apportées à l'API
- CameraView est abandonné. Veuillez utiliser
LifecycleCameraController
à la place. Consultez le guide de migration. (Idac2c). - Ajout de l'annotation FloatRange à setLinearZoom(). (I69971)
Corrections de bugs
- Épinglage des dépendances camera-view pour utiliser des artefacts 1.0.0. Selon camera-view, la résolution des dépendances de Gradle n'entraînera plus la mise à niveau automatique de camera-core, camera-camera2 et camera-lifecycle vers les derniers artefacts<1.1.0, bien que camera-view soit toujours compatible avec ces artefacts s'ils sont explicitement configurés pour utiliser la version 1.1.0. (Ic8fa1, b/181599852)
- Résolution du problème d'aperçu étiré en mode PreviewView sur les appareils Samsung A3. (Iacb30, b/180121821)
- Résolution du problème où le sélecteur d'appareil photo ne pouvait pas être réglé avant l'initialisation de l'appareil photo. (Ic8bd0)
Camera-Extensions et Camera-View version 1.0.0-alpha22
24 février 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha22
et d'androidx.camera:camera-view:1.0.0-alpha22
. Liste des commits de la version 1.0.0-alpha22
Modifications apportées à l'API
- Ajout d'un getter CameraInfo à CameraController. (Ib8138, b/178251727)
Corrections de bugs
- Correction d'ExtensionsErrorListener pour ne signaler les erreurs que si Preview ou ImageCapture est lié. (I5ae39)
Camera-Extensions et Camera-View version 1.0.0-alpha21
27 janvier 2021
Publication d'androidx.camera:camera-extensions:1.0.0-alpha21
et d'androidx.camera:camera-view:1.0.0-alpha21
. Liste des commits de la version 1.0.0-alpha21
Publication pour la prise en charge d'autres artefacts de la bibliothèque d'appareils photo.
Camera-Extensions et Camera-View version 1.0.0-alpha20
16 décembre 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha20
et d'androidx.camera:camera-view:1.0.0-alpha20
. Liste des commits de la version 1.0.0-alpha20
Publication pour la prise en charge d'autres artefacts de la bibliothèque d'appareils photo.
Camera-Extensions et Camera-View version 1.0.0-alpha19
11 novembre 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha19
et d'androidx.camera:camera-view:1.0.0-alpha19
. Liste des commits de la version 1.0.0-alpha19
Corrections de bugs
- L'annotation
@ExperimentalVideo
a été ajoutée à camera-view. Cette annotation marque les API qui exposent des fonctionnalités vidéo expérimentales susceptibles de changer lorsqu'elles seront entièrement développées. Toute méthode utilisant ces API doit utiliser l'annotation@UseExperimental
avecExperimentalVideo
commemarkerClass
. (I6d729)
Camera-Extensions version 1.0.0-alpha18
14 octobre 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha18
. Liste des commits de la version 1.0.0-alpha18
Corrections de bugs
- Amélioration de la latence d'initialisation de CameraX et de bindToLifecycle. (I61dc5)
<UseCase>.getTargetRotation()
renvoieSurface.ROTATION_0
s'il est appelé avant d'être associé à une instance de Camera, à moins qu'une rotation cible n'ait été définie dans le compilateur ou dans le cas d'utilisation. (I80fcd)
Camera-View version 1.0.0-alpha18
14 octobre 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha18
. Liste des commits de la version 1.0.0-alpha18
Publication pour la prise en charge d'autres artefacts de la bibliothèque d'appareils photo.
Camera-Extensions version 1.0.0-alpha17
23 septembre 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha17
. Liste des commits de la version 1.0.0-alpha17
Corrections de bugs
- Version prenant en charge Camera-Core 1.0.0-beta10.
Camera-View version 1.0.0-alpha17
23 septembre 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha17
. Liste des commits de la version 1.0.0-alpha17
Corrections de bugs
- Version prenant en charge Camera-Core 1.0.0-beta10.
Camera-Extensions version 1.0.0-alpha16
16 septembre 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha16
. Liste des commits de la version 1.0.0-alpha16
Corrections de bugs
- Ajout d'une méthode dans
ExtensionsManager
pour obtenir un objetExtensions
permettant d'activer et d'interroger des extensions sur les instances d'appareil photo. (I4fb7e)
Camera-View version 1.0.0-alpha16
16 septembre 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha16
. Liste des commits de la version 1.0.0-alpha16
Modifications apportées à l'API
- Suppression de
PreviewView#setDeviceRotationForRemoteDisplayMode()
et dePreviewView#getDeviceRotationForRemoteDisplayMode()
. Ces deux méthodes permettent de personnaliser la rotation des aperçus lorsque la rotation souhaitée ne correspond pas à celle de l'écran, par exemple en cas d'affichage à distance. Pour gérer la rotation d'un aperçu différent de l'écran, définissez la rotation souhaitée avecPreview#setTargetRotation()
et le nouvel élémentPreviewView#getViewPort(targetRotation)
. (Ib62cc) createSurfaceProvider()
a été renommégetSurfaceProvider()
. Cette méthode renvoie toujours la même instance de Preview.SurfaceProvider. (Iff83c)
Corrections de bugs
- Forçage de PreviewView afin d'utiliser TextureView si l'effet d'extension est activé et que l'implémentation de la bibliothèque du fournisseur doit exécuter un processus spécial sur la surface de sortie. (I0c3cc)
- Autorisation de la rotation arbitraire de la cible pour l'aperçu. Les informations sur la transformation sont calculées et renvoyées à l'utilisateur à la volée via un nouveau rappel
TranformationInfoListener
. (I21470)
Problèmes connus
- Dans PreviewView,
OnClickListener#onClick()
n'est pas appelé lorsque l'utilisateur final clique sur PreviewView. L'événement tactile est utilisé par erreur via PreviewView#onTouchEvent(). Ce problème sera résolu dans la prochaine version. - Le point de mesure (MeteringPoint) obtenu à partir de
PreviewView#getMeteringPointFactory()
peut être incorrect si ViewPort est utilisé avec PreviewView.
Camera-Extensions version 1.0.0-alpha15
19 août 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha15
. Liste des commits de la version 1.0.0-alpha15
Corrections de bugs
- La méthode
ExtensionsManager.init()
utilise désormais un contexte en tant que paramètre au lieu de n'avoir aucun argument. (Ife754) L'initialisation ne devrait plus planter lorsque vous utilisez un contexte qui ne renvoie pas d'objet Application à partir de
Context.getApplicationContext()
. (I3d3c9, b/160817073)Camera-View version 1.0.0-alpha15
19 août 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha15
. Liste des commits de la version 1.0.0-alpha15
Corrections de bugs
DisplayOrientedMeteringPointFactory
utilise une instanceCameraInfo
au lieu deCameraSelector
. Il existe donc un mappage direct avec l'appareil photo pour lequel la fabrique génère des points. Toutes les classes qui utilisentDisplayOrientedMeteringPointFactory
exploitent également une instanceCameraInfo
au lieu deCameraSelector
. (I400c1)- Suppression de
TextureViewMeteringPointFactory
.PreviewView
fournit une API publique (createMeteringPointFactory()
) pour créer une fabrique de points de mesure, qu'elle utilise un élémentTextureView
ouSurfaceView
. (Ide693) - Remplacement des modes d'implémentation
SURFACE_VIEW
/TEXTURE_VIEW
de PreviewView parPERFORMANCE
/COMPATIBLE
.PERFORMANCE
est l'ancien modeSURFACE_VIEW
, etCOMPATIBLE
est l'ancien modeTEXTURE_VIEW
. (I0edc2) - Pour la capture d'image, remplacez l'indicateur horizontal de retournement dans les métadonnées en fonction de la direction de l'appareil photo. (I28499)
Camera-Extensions version 1.0.0-alpha14
22 juillet 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha14
. Liste des commits de la version 1.0.0-alpha14
Camera-View version 1.0.0-alpha14
22 juillet 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha14
. Liste des commits de la version 1.0.0-alpha14
Camera-Extensions version 1.0.0-alpha13
24 juin 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha13
. Liste des commits de la version 1.0.0-alpha13
Corrections de bugs
- Ajout d'interfaces expérimentales pour le filtrage des appareils photo en fonction de l'ID et des caractéristiques (CameraCharacteristics) de l'appareil photo. (I28f61)
Camera-View version 1.0.0-alpha13
24 juin 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha13
. Liste des commits de la version 1.0.0-alpha13
Corrections de bugs
- CameraView ne plante plus avec une exception IllegalArgumentException lors de la liaison à un LifecycleOwner dont le cycle de vie passe à un état DESTROYED peu de temps après avoir été lié. Les cycles de vie de liaison dont l'état est DESTROYED ne tentent pas d'ouvrir l'appareil photo. (I7c2b8)
- PreviewView StreamState est désormais disponible via CameraView.getPreviewStreamState(). (I21a2b)
Camera-Extensions version 1.0.0-alpha12
10 juin 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha12
. Liste des commits de la version 1.0.0-alpha12
Corrections de bugs
- Résolution du problème de plantage au démarrage de l'application lorsque l'appareil photo était initialisé et que le téléphone était en mode Ne pas déranger. Une exception
InitializationException
contient un élémentCameraUnavailableException
qui est défini sur l'élémentListenableFuture
du résultat d'initialisation au lieu de faire planter l'application. (I9909a, b/149413835)
Camera-View version 1.0.0-alpha12
10 juin 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha12
. Liste des commits de la version 1.0.0-alpha12
Corrections de bugs
- Ajout de l'API
PreviewView#getBitmap()
qui renvoie une représentation bitmap du contenu affiché sur la surface d'aperçu. (I9b500, b/157659818)
Camera-Extensions version 1.0.0-alpha11
27 mai 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha11
. Liste des commits de la version 1.0.0-alpha11
Camera-View version 1.0.0-alpha12
10 juin 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha12
. Liste des commits de la version 1.0.0-alpha12
Nouvelles fonctionnalités
Modifications apportées à l'API
Corrections de bugs
- Ajout de l'API
PreviewView#getBitmap()
qui renvoie une représentation bitmap du contenu affiché sur la surface d'aperçu. (I9b500, b/157659818)
Camera-View version 1.0.0-alpha11
27 mai 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha11
. Liste des commits de la version 1.0.0-alpha11
Modifications apportées à l'API
- Ajout de l'API
PreviewView#getPreviewStreamState
, qui permet aux applications d'observer si l'aperçu est diffusé en streaming ou non. Lorsque l'aperçu est en mode TEXTURE_VIEW, l'état STREAMING garantit également que l'image d'aperçu est visible. (Ic0906, b/154652477) - Ajout de l'API
PreviewView#setDeviceRotationForRemoteDisplayMode()
pour permettre la rotation des appareils pour les calculs de transformation si l'application s'exécute en mode d'affichage à distance. (I59b95, b/153514525)
Corrections de bugs
- Résolution du problème de distorsion de l'aperçu sur les appareils photo
FULL/LIMITED/LEVEL_3
fonctionnant sur Android 7.0 ou version antérieure. Utilisation forcée du modeImplementationMode#TEXTURE_VIEW
lorsque la version d'Android est 7.0 ou antérieure. (I83e30, b/155085307) - Suppression du paramètre
CameraInfo
dePreviewView#createSurfaceProvider()
.PreviewView
le récupère désormais en interne à partir deSurfaceRequest
. (If18f0, b/154652477) - Résolution du format par défaut de VideoCapture pour qu'il corresponde à 16:9 dans CameraView. (Ie6a7b, b/153237864)
- Résolution du problème d'affichage d'un écran noir
PreviewView
lors du balayage du fragmentPreview
, puis d'un balayage en arrière dans ViewPager2. Le problème a également été résolu avecremoveView(previewview)
, puisaddView(previewView)
. (Iab555, b/149877652, b/147354615) - Mise à jour de l'API
CameraView#takePicture()
pour autoriser l'enregistrement des images dansUri
etOutputStream
. Mise à jour de l'application de test pour qu'elle utiliseUri
comme exemple canonique. (Ia2459, b/153607583) - Vous pouvez définir le type d'échelle de PreviewView à partir d'une mise en page XML en spécifiant l'attribut
ScaleType
. (I08565, b/153015659) - Suppression de
CameraView.ScaleType
. Utilisez plutôtPreviewView.ScaleType
pour définir/obtenir un type d'échelle avec CameraView. (Ia8974, b/153014831) - Attribuez une couleur d'arrière-plan à
PreviewView
si ce n'est pas déjà fait. Cela permet d'éviter que le contenu situé derrière ne soit visible avant le début de la diffusion de l'aperçu. (I09fad)
Camera-Extensions version 1.0.0-alpha10
15 avril 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Corrections de bugs
- Correctifs permettant la publication de Camera-Core.
Camera-View version 1.0.0-alpha10
15 avril 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha010
. Liste des commits de la version 1.0.0-alpha010
Corrections de bugs
- Résolution d'un problème connu où l'implémentation
PreviewView
de surfaceView ne fonctionnait pas correctement sur certains appareils et provoquait le plantage de l'application après la réactivation de l'aperçu. (I5ed6b)
Camera-Extensions version 1.0.0-alpha09
1er avril 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha09
. Liste des commits de la version 1.0.0-alpha09
Corrections de bugs
- Mise à jour pour prendre en charge les corrections de bugs dans les artefacts
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
etcamera-lifecycle:1.0.0-beta02
.
Camera-View version 1.0.0-alpha09
Publication d'androidx.camera:camera-view:1.0.0-alpha09
le 1er avril 2020. Liste des commits de la version 1.0.0-alpha09
Problèmes connus
- L'utilisation d'
ImplementationMode.SURFACE_VIEW
avecPreviewView
peut ne pas fonctionner correctement sur certains appareils. En effet, la valeurSurfaceView
utilisée pour l'aperçu invalide sa surface lorsque le cycle de vie de la fenêtre dans laquelle elle se trouve est arrêté. Lorsqu'il redémarre, l'appareil photo est rouvert et peut tenter de reprendre l'aperçu avant que la surface deSurfaceView
ne soit de nouveau valide. Pour l'instant, utilisezImplementationMode.TEXTURE_VIEW
.
Modifications apportées à l'API
PreviewView.setImplementationMode()
a été renomméPreviewView.setPreferredImplementationMode()
.PreviewView.getImplementationMode()
a été renomméPreviewView.getPreferredImplementationMode()
.- Remplacement de
PreviewView.getSurfaceProvider()
parPreviewView.createSurfaceProvider(CameraInfo)
, qui accepte une instanceCameraInfo
pouvant avoir une valeur nulle et utilisée pour optimiser l'aperçu à l'aide d'ImplementationMode.SURFACE_VIEW
le cas échéant. Si une instance nulle est transmise ou si vous définissez le mode d'implémentation préféré surImplementationMode.TEXTURE_VIEW
,ImplementationMode.TEXTURE_VIEW
est utilisé en interne. L'exemple de code suivant montre comment un cas d'utilisation d'aperçu était auparavant utilisé avec PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
Maintenant, vous pouvez écrire ce qui suit :
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
L'annotation
@UiThread
a été ajoutée àPreviewView.getSurfaceProvider()
, ce qui signifie qu'elle doit être appelée à partir du thread principal. (I192f3)Ajout de
PreviewView.setScaleType()
, qui permet de définir le type d'échelle de l'aperçu. Il accepte l'une des valeurs dansPreviewView.ScaleType
et utilise par défautPreviewView.ScaleType.FILL_CENTER
.Ajout de
PreviewView.getScaleType()
.Il n'est plus possible de définir le mode d'implémentation pour
PreviewView
dans une mise en page XML avec l'attributimplementationMode
.Ajout de l'API
createMeteringPointFactory()
à PreviewView pour permettre la conversion (x, y) dePreviewView
enMeteringPoint
. (Ib36d7)
Corrections de bugs
- Correction d'un problème d'affichage d'un aperçu incorrect après le changement de taille de
PreviewView
. (I71101)
Camera-Extensions version 1.0.0-alpha08
26 février 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Camera-View version 1.0.0-alpha08
26 février 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Corrections de bugs
- Remplacement de
ListenableFuture
surSurfaceRequest.provideSurface()
parExecutor
etCallback
. Cela simplifie l'API en évitant d'avoir à gérer les exceptions surprovideSurface()
, et fait en sorte que le rappel deprovideSurface()
ne puisse pas être annulé. Les plantages causés par la libération prématurée des surfaces sur les appareils plus anciens peuvent ainsi être évités. L'objetSurfaceRequest.Result
permet désormais de suivre la façon dont une requêteSurfaceRequest
utilise laSurface
fournie. (I7854b) - Remplacement du nom
SurfaceRequest.setSurface(Surface)
parSurfaceRequest.provideSurface(Surface)
et du nomSurfaceRequest.setWillNotComplete()
parSurfaceRequest.willNotProvideSurface()
. (I224fe) - Correction de l'initialisation des variantes d'application avec ProGuard activé en conservant l'option qui définit le fournisseur
CameraXConfig
par défaut. (I2d6c1)
Camera-Extensions version 1.0.0-alpha07
10 février 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07
Corrections de bugs
- Les arguments qui étaient auparavant transmis dans
ImageCapture.OnImageSavedCallback.onError()
etImageCapture.OnImageCapturedCallback.onError()
ont été remplacés par un seul argumentImageCaptureException
, qui contient toujours toutes les informations transmises précédemment. - L'argument de fichier précédemment transmis dans
ImageCapture.OnImageSavedCallback.onImageSaved()
a été supprimé. (I750d2)
Camera-View version 1.0.0-alpha07
10 février 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07
Modifications apportées à l'API
- L'implémentation
TextureView
dePreviewView
définit désormais la taille deTextureView
sur la taille de sortie du capteur de l'appareil photo avant de la mettre à l'échelle afin qu'elle remplisse l'élémentPreviewView
parent. Si vous souhaitez que l'aperçu de l'appareil photo remplisse intégralement une partie de l'interface utilisateur (l'écran tout entier, par exemple), vous ne devez pas définir une valeur fixe pour la propriétéPreviewView
, ni lui faire encapsuler son contenu (à l'aide de l'attributwrap_content
, par exemple). Dans le cas contraire, l'aperçu de l'appareil photo pourrait ne remplir qu'une partie dePreviewView
(si la taille de sortie du capteur de l'appareil photo est inférieure). Définissez une taillePreviewView
identique à celle du parent (en utilisant l'attributmatch_parent
, par exemple). (1204869)
Corrections de bugs
- Mise à jour d'
ImageCapture
pour permettre l'enregistrement d'images dansUri
etOutputStream
. Combinaison des méthodestakePicture
surchargées en une seule. Mise à jour de l'application de test pour utiliserUri
comme exemple canonique. (Ia3bec) Preview.PreviewSurfaceProvider
a été renomméPreview.SurfaceProvider
.SurfaceProvider
n'exige plus des développeurs qu'ils créent leur propreListenableFuture
, et il est désormais possible de fournir uneSurface
via un nouvel objetSurfaceRequest
. La méthodePreview.getPreviewSurfaceProvider()
a été supprimée en raison d'un usage abusif potentiel lorsquePreview
est associé à d'autres classes telles quePreviewView
. (I20105)- Les arguments qui étaient auparavant transmis dans
ImageCapture.OnImageSavedCallback.onError()
etImageCapture.OnImageCapturedCallback.onError()
ont été remplacés par un seul argumentImageCaptureException
, qui contient toujours toutes les informations transmises précédemment. - L'argument de fichier précédemment transmis dans
ImageCapture.OnImageSavedCallback.onImageSaved()
a été supprimé. (I750d2) - API mise à jour, avec la fusion des méthodes
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
etgetLinearZoom()
deCameraInfo
dansgetZoomState()
, ce qui renvoie une instanceZoomState
. (Ib19fe)
Camera-Extensions version 1.0.0-alpha06
22 janvier 2020
Publication d'androidx.camera:camera-extensions:1.0.0-alpha06
. Liste des commits de la version 1.0.0-alpha06
Mises à jour
- Différents correctifs et mises à jour pour prendre en charge les modifications apportées à Camera Core et Camera2.
Camera-View version 1.0.0-alpha06
22 janvier 2020
Publication d'androidx.camera:camera-view:1.0.0-alpha06
. Liste des commits de la version 1.0.0-alpha06
Mises à jour
- Différents correctifs et mises à jour pour prendre en charge les modifications apportées à Camera Core et Camera2.
Camera-Extensions version 1.0.0-alpha05
18 décembre 2019
Publication d'androidx.camera:camera-extensions:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05
Corrections de bugs
- Mise à jour pour correspondre aux API Camera Core internes.
Camera-View version 1.0.0-alpha05
18 décembre 2019
Publication d'androidx.camera:camera-view:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05
Problèmes connus
- Le format peut être incorrect lors de l'utilisation de PreviewView. (b/146215202).
Nouvelles fonctionnalités
- Implémentation d'une nouvelle classe appelée
PreviewView.TextureViewImplementation
qui synchronise le cycle de vie de SurfaceTexture avec l'utilisation de la surface de TextureView par l'appareil photo.
Camera-Extensions version 1.0.0-alpha04
4 décembre 2019
Publication d'androidx.camera:camera-extensions:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04 de camera-extensions
Modifications apportées à l'API
La vérification de la disponibilité et de l'activation d'une extension utilise désormais un
CameraSelector
en tant que paramètre d'entrée. Il doit s'agir du mêmeCameraSelector
que celui utilisé pour lier le cas d'utilisation.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)
Vous devez initialiser les extensions avant d'utiliser la bibliothèque d'extensions.
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 version 1.0.0-alpha04
4 décembre 2019
Publication d'androidx.camera:camera-view:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04 de camera-view
Modifications apportées à l'API
- Une classe
PreviewView
permet d'afficher facilement la sortie du cas d'utilisation Preview dans une application. PreviewView
peut être inclus dans la mise en page :<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
fournit unPreviewSurfaceProvider
permettant de connecter facilement un cas d'utilisation Preview.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
ZoomLevel
a été renomméZoomRatio
dans les noms d'API.La valeur nulle de certains paramètres de méthode a changé.
Camera-Extensions et Camera-View version 1.0.0-alpha03
9 octobre 2019
Publication d'androidx.camera:camera-extensions:1.0.0-alpha03
et d'androidx.camera:camera-view:1.0.0-alpha03
. Il s'agit des commits inclus dans camera-extensions:1.0.0-alpha03
et de ceux inclus dans camera-view:1.0.0-alpha03
.
Nouvelles fonctionnalités
- Ajout de l'initialiseur de contexte pour les extensions. Version d'extensions incrémentée à 1.1.0.
Camera-Extensions et Camera-View version 1.0.0-alpha02
5 septembre 2019
Publication d'androidx.camera:camera-extensions:1.0.0-alpha02
et d'androidx.camera:camera-view:1.0.0-alpha02
. Il s'agit des commits inclus dans camera-extensions:1.0.0-alpha02 et de ceux inclus dans camera-view:1.0.0-alpha02.
- Ajout de tests pour vérifier que
PreviewImageProcessorImpl
a correctement implémenté les horodatages. - Résolution de l'échec du test
ExtensionTest
sur le Nexus 5 (niveau d'API 21) et aperçu maintenant disponible à tout moment.
Camera-Extensions et Camera-View version 1.0.0-alpha01
7 août 2019
Publication d'androidx.camera:camera-extensions:1.0.0-alpha01
et d'androidx.camera:camera-view:1.0.0-alpha01
.
Il s'agit des commits inclus dans camera-extensions:1.0.0-alpha01 et de ceux inclus dans camera-view:1.0.0-alpha01.
- Nouvelle bibliothèque pour les futures extensions Camera permettant d'accéder aux effets sur les appareils compatibles. Cette bibliothèque est en cours de développement.
- Nouvelle classe camera-view. Cette bibliothèque est en cours de développement.