Stay organized with collections Save and categorize content based on your preferences.

CameraX

CameraX est un complément de Jetpack qui facilite l'ajout de fonctionnalités d'appareil photo à votre application. Cette bibliothèque fournit divers correctifs et solutions de compatibilité qui contribuent à harmoniser l'expérience de développement sur de nombreux appareils.

Ce tableau répertorie tous les artefacts du groupe androidx.camera.

Artefact Version stable Version finale Version bêta Version alpha
camera-camera2 1.1.0 - 1.2.0-beta01 -
camera-core 1.1.0 - 1.2.0-beta01 -
camera-extensions 1.1.0 - 1.2.0-beta01 -
camera-lifecycle 1.1.0 - 1.2.0-beta01 -
camera-mlkit-vision - - 1.2.0-beta01 -
camera-view 1.1.0 - 1.2.0-beta01 -
camera-video 1.1.0 - 1.2.0-beta01 -
Dernière mise à jour de la bibliothèque : 24 août 2022

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.3.0-alpha02"
  // 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.3.0-alpha02"
    // 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. Pour ajouter votre vote à un problème existant, cliquez sur le bouton en forme d'étoile.

Signaler un problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.2

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 et MLKitAnalyzer en tant qu'API officielles.
  • API exposée pour définir les métadonnées de localisation sur la vidéo enregistrée.
  • Remplacement du nom ImageAnalysis.Analyzer#getTargetResolutionOverride() par 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

  • Remplacement du nom ImageAnalysis.Analyzer#getTargetResolutionOverride() par 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 API androidx.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 et MLKitAnalyzer. (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" si FocusMeteringAction 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 dans ImageCapture et de isZslSupported dans CameraInfo pour interroger la fonctionnalité de l'appareil. Le mode CAPTURE_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éristique CONTROL_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 lorsque VideoCapture est associé à ImageCapture et Preview sur un appareil photo de niveau matériel FULL ou supérieur. Si la stratégie de secours QualitySelector 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 et setOutputImageFormat).
  • 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 dans CameraInfo, qui permet aux applications de vérifier si l'élément FocusMeteringAction donné est compatible ou non avec l'appareil photo actuel.
  • API getResolutionInfo exposée pour fournir les informations de résolution pour Preview, ImageCapture et ImageAnalysis.
  • 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 de CameraInfos basée sur un CameraSelector.
  • 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 un CameraSelector 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 de ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection et ViewPort.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 par MediaStoreOutputOptions.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 mode ImageCapture#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éristique CONTROL_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 de VideoCapture<Recorder> lors de l'enregistrement avec MediaCodec.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 dans ImageCaptureTest.

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'exception InvalidConfigException. Si le Recorder 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é par Quality.HD, et QualitySelector.FALLBACK_STRATEGY_LOWER est remplacé par l'instance renvoyée par FallbackStrategy.lowerQualityOrHigherThan(Quality). L'API utilisée pour créer QualitySelector a été remplacée par une API basée sur des listes. La nouvelle API QualitySelector.fromOrderedList(List<Quality>) fait référence à l'ordre de la liste des qualités d'entrée, et non à l'ordre créé par QualitySelector.Procedure. La classe QualitySelector.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énement VideoRecordEvent.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 photo REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE disposent de toutes les fonctionnalités minimales requises. Il est possible qu'un appareil photo sans REQUEST_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'utilisation Preview, ImageCapture, ImageAnalysis ou VideoCapture pour ces appareils photo. Ils doivent donc être filtrés pour éviter une utilisation incorrecte. (Ib8cda)
  • CameraSelector#filter ne génère plus d'exception IllegalArgumentException 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 entre CameraCharacteristics.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 est CAPTURE_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 mode ImageCapture#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 et ViewPort.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, utilisez androidx.annotation.OptIn au lieu de l'élément obsolète androidx.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ément CameraSelector fourni dans CameraXConfig.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 dans setZoomRatio et setLinearZoom 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

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 sur Log#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 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)
  • 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() renvoie Surface.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() renvoie Surface.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

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é par FLASH_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 instance CameraInfo au lieu de 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 exploitent également une instance CameraInfo au lieu de CameraSelector. (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 et FIT_END avec FIT. 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'appeler ProcessCameraProvider#getInstance(). Cela permet de personnaliser CameraXConfig sans implémenter CameraXConfig.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ément CameraUnavailableException qui est défini sur l'élément ListenableFuture 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 valeur CONTROL_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ément CameraUnavailableException qui est défini sur l'élément ListenableFuture du résultat d'initialisation au lieu de faire planter l'application. (I9909a, b/149413835)

Corrections de bugs

  • Mise à jour des javadocs de setTargetResolution et setTargetRotation. (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 et CameraXConfig.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éments ImageProxy reçus par Analyzer doivent maintenant être fermés avant la fermeture d'ImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269)
  • Suppression du paramètre CameraInfo de PreviewView#createSurfaceProvider(). PreviewView le récupère désormais en interne à partir de SurfaceRequest. (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 aucun UseCase générait une exception. Cela empêchait la récupération d'un objet Camera sans la liaison d'un UseCase.

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é par ImageCapture 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 de bindToLifecycle 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é par ImageCapture 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 de bindToLifecycle 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

  • Remplacement du nom SurfaceRequest.setSurface(Surface) par SurfaceRequest.provideSurface(Surface) et du nom SurfaceRequest.setWillNotComplete() par 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 sur SurfaceRequest.provideSurface() par Executor et Callback. Cela simplifie l'API en évitant d'avoir à gérer les exceptions sur provideSurface(), et fait en sorte que le rappel de provideSurface() 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'objet SurfaceRequest.Result permet désormais de suivre la façon dont une requête SurfaceRequest utilise la Surface fournie. (I7854b)
  • Remplacement du nom SurfaceRequest.setSurface(Surface) par SurfaceRequest.provideSurface(Surface) et du nom SurfaceRequest.setWillNotComplete() par SurfaceRequest.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 des Surfaces 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 dans Uri et OutputStream. Combinaison des méthodes takePicture surchargées en une seule. Mise à jour de l'application de test pour utiliser Uri comme exemple canonique. (Ia3bec)
  • Preview.PreviewSurfaceProvider a été renommé Preview.SurfaceProvider. SurfaceProvider n'exige plus des développeurs qu'ils créent leur propre ListenableFuture, et il est désormais possible de fournir une Surface via un nouvel objet SurfaceRequest. La méthode Preview.getPreviewSurfaceProvider() a été supprimée en raison d'un usage abusif potentiel lorsque Preview est associé à d'autres classes telles que PreviewView. (I20105)
  • Ajout de getTargetRotation() et getTargetName() à Preview. (Iceee7)
  • Ajout de getTargetRotation(), getBackpressureStrategy() et getImageQueueDepth() dans ImageAnalysis. (I9d6d9)
  • Ajout de getTargetRotation() et getCaptureMode() dans ImageCapture(). (I5bc17)
  • Les arguments qui étaient auparavant transmis dans ImageCapture.OnImageSavedCallback.onError() et ImageCapture.OnImageCapturedCallback.onError() ont été remplacés par un seul argument ImageCaptureException, 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 et ImageCapture sont désormais marquées comme finales. (I2500b)
  • API mise à jour, avec la fusion des méthodes getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() et getLinearZoom() de CameraInfo dans getZoomState(), ce qui renvoie une instance ZoomState. (Ib19fe)
  • Suppression des champs d'API OPTION_TARGET_CLASS et OPTION_TARGET_NAME de CameraXConfig, car ils ne sont destinés qu'à une bibliothèque interne. Constructeur supprimé pour CameraXConfig.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'artefact camera-camera2 est inclus dans le fichier build.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 de Camera2CameraInfo.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 markerClass ExperimentalCamera2Interop.

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 constructeurs FocusMeteringAction.Builder().
  • Suppression de DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Les applications doivent utiliser le constructeur qui accepte un paramètre Display 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ètre Display.
  • Documentation de référence étoffée pour setZoomRatio et setLinearZoom.

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 et cancelFocusMetering 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 ou CameraView 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 et CameraControl.
  • Implémentation de TorchControl pour enableTorch() et getTorchState().

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 classe OnImageCaptureCallback vers ImageInfo.
  • rotationDegrees déplacé de la classe Analyzer vers ImageInfo.

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 configuration Camera2Config par défaut fournie par androidx.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() et hasCamera() précédemment fournis par l'appel de la classe CameraX sont désormais disponibles via ProcessCameraProvider.

  • Une instance par processus de ProcessCameraProvider est obtenue de manière asynchrone à l'aide de la méthode statique ProcessCameraProvider.getInstance(), qui renvoie un ListenableFuture qui fournit le ProcessCameraProvider une fois l'opération terminée. Ici, elle apparaît dans onCreate() 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é par getInstance(). Ainsi, le fournisseur d'appareil photo pourra être récupéré à partir de Future sans bloquer au niveau de Future.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 appeler image.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-pression intdef.

  • 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 pour Analyzer.

  • 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ésormais ImageCapture.OnImageCapturedCallback.
    • ImageCapture.OnImageSavedListener est désormais ImageCapture.OnImageSavedCallback.
    • VideoCapture.OnVideoSavedListener est désormais VideoCapture.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 et cancelFocusMetering renvoient désormais ListenableFutures, 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 valeur ListenableFuture<Void> renvoyée est toujours un état complete(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), et TorchState restera désactivé.
  • Problème connu : startFocusAndMetering et cancelFocusAndMetering lancent et annulent la mesure de la mise au point, mais renvoient immédiatement un état completed (success) ne représentant pas le comportement documenté. L'élément FocusMeteringResult de ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() est un résultat fictif dont l'état est isFocusSuccessful() 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 pour PreviewView.

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 options RATIO_4_3 ou RATIO_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 par setTargetAspectRatioCustom(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

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éthode getCameraInfo, 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() ou setTargetAspectRatio(). 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.
  • 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 et FocusMeteringAction 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 ou setTargetResolution).
  • 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érait java.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() renvoie Surface.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

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ément CameraUnavailableException qui est défini sur l'élément ListenableFuture 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 aucun UseCase générait une exception. Cela empêchait la récupération d'un objet Camera sans la liaison d'un UseCase.
  • 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 classe Application 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 et camera-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ée ProcessCameraProvider, qui offre de nombreuses fonctions de la classe CameraX précédente et qui est obtenue via une méthode getInstance().
  • 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'avec ImageCapture et Preview. VideoCapture n'est pas encore pris en charge. Si l'application associe VideoCapture et active un mode d'extension, une erreur IllegalArgumentException est générée. (I0d87b)
  • CameraSelector#filter ne génère plus d'exception IllegalArgumentException lorsque l'ensemble de résultats est vide. (I27804)
  • L'API ExtensionsManager#getInstance a été renommée getInstanceAsync, car elle renvoie ListenableFuture. 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'utilisation ImageCapture 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 fonctions ExtensionsManager vers l'API getInstance(). De la sorte, les utilisateurs n'ont pas besoin d'ajouter le paramètre CameraProvider chaque fois qu'ils appellent les fonctions ExtensionsManager. (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 utiliser RotationProvider#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 par CoordinateTransform#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é par CameraController. Consultez le guide de migration pour découvrir comment effectuer la migration. (Id5005)

Corrections de bugs

  • Remplacement d'ExperimentalUseCaseGroupLifecycle par ExperimentalUseCaseGroup. (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, utilisez androidx.annotation.OptIn au lieu de l'élément obsolète androidx.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

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 avec ExperimentalVideo comme markerClass. (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() renvoie Surface.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

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

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 objet Extensions 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 de PreviewView#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 avec Preview#setTargetRotation() et le nouvel élément PreviewView#getViewPort(targetRotation). (Ib62cc)
  • Remplacement du nom createSurfaceProvider() par 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 instance CameraInfo au lieu de 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 exploitent également une instance CameraInfo au lieu de CameraSelector. (I400c1)
  • Suppression de TextureViewMeteringPointFactory. PreviewView fournit une API publique (createMeteringPointFactory()) pour créer une fabrique de points de mesure, qu'elle utilise un élément TextureView ou SurfaceView. (Ide693)
  • Remplacement des modes d'implémentation SURFACE_VIEW/TEXTURE_VIEW de PreviewView par PERFORMANCE/COMPATIBLE. PERFORMANCE est l'ancien mode SURFACE_VIEW, et COMPATIBLE est l'ancien mode TEXTURE_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ément CameraUnavailableException qui est défini sur l'élément ListenableFuture 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 mode ImplementationMode#TEXTURE_VIEW lorsque la version d'Android est 7.0 ou antérieure. (I83e30, b/155085307)
  • Suppression du paramètre CameraInfo de PreviewView#createSurfaceProvider(). PreviewView le récupère désormais en interne à partir de SurfaceRequest. (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 fragment Preview, puis d'un balayage en arrière dans ViewPager2. Le problème a également été résolu avec removeView(previewview), puis addView(previewView). (Iab555, b/149877652, b/147354615)
  • Mise à jour de l'API CameraView#takePicture() pour autoriser l'enregistrement des images dans Uri et OutputStream. Mise à jour de l'application de test pour qu'elle utilise Uri 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ôt PreviewView.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 et camera-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 avec PreviewView peut ne pas fonctionner correctement sur certains appareils. En effet, la valeur SurfaceView 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 de SurfaceView ne soit de nouveau valide. Pour l'instant, utilisez ImplementationMode.TEXTURE_VIEW.

Modifications apportées à l'API

  • Remplacement du nom PreviewView.setImplementationMode() par PreviewView.setPreferredImplementationMode().
  • Remplacement du nom PreviewView.getImplementationMode() par PreviewView.getPreferredImplementationMode().
  • Remplacement de PreviewView.getSurfaceProvider() par PreviewView.createSurfaceProvider(CameraInfo), qui accepte une instance CameraInfo 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é sur ImplementationMode.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 dans PreviewView.ScaleType et utilise par défaut PreviewView.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'attribut implementationMode.

  • Ajout de l'API createMeteringPointFactory() à PreviewView pour permettre la conversion (x, y) de PreviewView en MeteringPoint. (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 sur SurfaceRequest.provideSurface() par Executor et Callback. Cela simplifie l'API en évitant d'avoir à gérer les exceptions sur provideSurface(), et fait en sorte que le rappel de provideSurface() 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'objet SurfaceRequest.Result permet désormais de suivre la façon dont une requête SurfaceRequest utilise la Surface fournie. (I7854b)
  • Remplacement du nom SurfaceRequest.setSurface(Surface) par SurfaceRequest.provideSurface(Surface) et du nom SurfaceRequest.setWillNotComplete() par SurfaceRequest.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() et ImageCapture.OnImageCapturedCallback.onError() ont été remplacés par un seul argument ImageCaptureException, 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 de PreviewView définit désormais la taille de TextureView sur la taille de sortie du capteur de l'appareil photo avant de la mettre à l'échelle afin qu'elle remplisse l'élément PreviewView 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'attribut wrap_content, par exemple). Dans le cas contraire, l'aperçu de l'appareil photo pourrait ne remplir qu'une partie de PreviewView (si la taille de sortie du capteur de l'appareil photo est inférieure). Définissez une taille PreviewView identique à celle du parent (en utilisant l'attribut match_parent, par exemple). (1204869)

Corrections de bugs

  • Mise à jour d'ImageCapture pour permettre l'enregistrement d'images dans Uri et OutputStream. Combinaison des méthodes takePicture surchargées en une seule. Mise à jour de l'application de test pour utiliser Uri comme exemple canonique. (Ia3bec)
  • Preview.PreviewSurfaceProvider a été renommé Preview.SurfaceProvider. SurfaceProvider n'exige plus des développeurs qu'ils créent leur propre ListenableFuture, et il est désormais possible de fournir une Surface via un nouvel objet SurfaceRequest. La méthode Preview.getPreviewSurfaceProvider() a été supprimée en raison d'un usage abusif potentiel lorsque Preview est associé à d'autres classes telles que PreviewView. (I20105)
  • Les arguments qui étaient auparavant transmis dans ImageCapture.OnImageSavedCallback.onError() et ImageCapture.OnImageCapturedCallback.onError() ont été remplacés par un seul argument ImageCaptureException, 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() et getLinearZoom() de CameraInfo dans getZoomState(), ce qui renvoie une instance ZoomState. (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ême CameraSelector 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 un PreviewSurfaceProvider 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.