Appareils pliables et caméras

Remarque:Cette page fait référence au package Camera2. Sauf si votre application nécessite des fonctionnalités spécifiques de bas niveau de Camera2, nous vous recommandons d'utiliser CameraX. CameraX et Camera2 sont compatibles avec Android 5.0 (niveau d'API 21) ou version ultérieure.

Les développeurs d'appareils photo peuvent rencontrer des défis uniques lorsqu'ils travaillent sur des applications d'appareil photo exécutées sur des appareils pliables. Contrairement aux smartphones, où plusieurs hypothèses liées à l'orientation de l'écran, de l'appareil photo et de la face sont souvent valides, les appareils pliables peuvent avoir différents facteurs de forme, mises en page d'affichage et combinaisons d'appareils photo.

Les smartphones sont généralement équipés d'appareils photo en mode portrait correspondant à l'écran. Toutefois, ce n'est pas toujours le cas pour certains états de pliage. Un écran déplié peut comporter un capteur en mode portrait et un autre en mode paysage.

Si votre application d'appareil photo utilise un SurfaceTexture ou un pipeline de rendu personnalisé, tenez compte de l'orientation du capteur de l'appareil photo.

Cela garantit que le contenu affiché est toujours physiquement à l'endroit et que les pixels restent carrés, ce qui évite de les étirer dans les directions horizontale ou verticale.

Ce guide fournit des informations sur ce que les développeurs Camera2 doivent prendre en compte et sur la procédure à suivre pour ajuster le rendu de l'aperçu de l'appareil photo pour différents états d'appareil pliable.

Impact des contacteurs d'état de l'appareil sur les caméras

Les appareils pliables peuvent inclure:

  • Deux écrans physiques ou plus
  • Plusieurs appareils photo physiques

Ces appareils peuvent devenir actifs en fonction de leur état. Pour simplifier la gestion de l'état de l'appareil, certains appareils implémentent une caméra logique composée de deux capteurs physiques ou plus.

Si les développeurs ouvrent et activent le streaming d'aperçu sur un tel appareil photo logique, la caméra bascule automatiquement entre les appareils physiques en fonction d'états de pliage spécifiques.

Prenons l'exemple d'un appareil pliable avec deux écrans:

  • Écran portrait standard en position pliée avec une caméra avant "extérieure" physique en mode portrait.
  • Écran pliable activé en position dépliée avec une caméra avant physique "intérieure" orientée paysage par rapport à l'écran déplié.

Lorsque l'utilisateur plie ou déplie l'appareil alors qu'une application diffuse du contenu à partir de la caméra logique avant, l'implémentation de l'appareil peut basculer entre les capteurs physiques internes et externes en réponse à chaque changement d'état de l'appareil.

Le bouton d'activation/de désactivation de l'écran peut nécessiter que l'application ajuste son interface utilisateur.

En plus des ajustements de l'UI, les développeurs peuvent devoir ajuster la façon dont l'aperçu de l'appareil photo s'affiche par rapport à la caméra physique active.

Contacteurs physiques de l'appareil photo

L'interface de l'appareil photo logique fournit les API nécessaires pour gérer les boutons physiques de l'appareil photo. Les développeurs doivent surveiller la valeur de l'identifiant physique actif.

Sur les appareils pliables, le résultat de la capture d'une pièce d'identité physique active peut changer en fonction de différents boutons d'activation/de désactivation de l'état de pliage, comme le pliage et le dépliage.

Dans ce cas, les développeurs doivent utiliser l'ID physique actif actuel et vérifier les caractéristiques de la caméra correspondantes.

Les deux caractéristiques d'appareil photo les plus importantes qui peuvent potentiellement changer et affecter le rendu de l'aperçu sont l'orientation du capteur et l'orientation de l'objectif.

Si le pipeline de rendu d'aperçu de votre application dépend de paramètres d'appareil photo statiques pour calculer sa matrice de transformation finale, assurez-vous de transmettre les valeurs actuelles et de mettre à jour les transformations graphiques.

Pour mieux comprendre les pipelines d'aperçu de l'appareil photo et la façon dont les transformations sont calculées, consultez le guide de l'aperçu de l'appareil photo.

Autres hypothèses non valides

Il n'est pas recommandé de mettre en cache les valeurs des caractéristiques de la caméra.

Vous ne pouvez pas supposer que les caractéristiques de la caméra restent constantes, car elles peuvent changer lorsque l'appareil est plié ou déplié. Pour cette raison, vous ne devez pas stocker ni réutiliser les caractéristiques de l'appareil photo. Vérifiez plutôt les caractéristiques de la caméra à chaque fois.

Prenons le cas où une application d'appareil photo démarre sur l'écran avant extérieur et met en cache les caractéristiques actuelles de l'appareil photo avant et arrière. Si l'application redémarre sur l'écran intérieur, le capteur physique avant actif peut avoir une orientation différente, ce qui peut déclencher des effets secondaires de rendu d'aperçu indésirables.