Partager via


CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Méthode

Définition

Une caméra physique est devenue disponible à nouveau pour une utilisation.

[Android.Runtime.Register("onPhysicalCameraAvailable", "(Ljava/lang/String;Ljava/lang/String;)V", "GetOnPhysicalCameraAvailable_Ljava_lang_String_Ljava_lang_String_Handler", ApiSince=30)]
public virtual void OnPhysicalCameraAvailable(string cameraId, string physicalCameraId);
[<Android.Runtime.Register("onPhysicalCameraAvailable", "(Ljava/lang/String;Ljava/lang/String;)V", "GetOnPhysicalCameraAvailable_Ljava_lang_String_Ljava_lang_String_Handler", ApiSince=30)>]
abstract member OnPhysicalCameraAvailable : string * string -> unit
override this.OnPhysicalCameraAvailable : string * string -> unit

Paramètres

cameraId
String

Identificateur unique de la caméra multi-caméra logique.

physicalCameraId
String

Identificateur unique de la caméra physique.

Attributs

Remarques

Une caméra physique est devenue disponible à nouveau pour une utilisation.

Par défaut, toutes les caméras physiques d’une caméra multi-caméra logique sont disponibles. Il n’est donc #onPhysicalCameraAvailable pas appelé pour l’une des caméras physiques d’une caméra multi-caméra logique, quand #onCameraAvailable la caméra multi-caméra logique est appelée. Toutefois, si certaines caméras physiques spécifiques ne sont pas disponibles pour commencer, #onPhysicalCameraUnavailable peuvent être appelées après #onCameraAvailable.

Si android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion < android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE, l’ouverture d’une caméra logique désactive et #onPhysicalCameraUnavailable #onPhysicalCameraAvailable rappelle ses caméras physiques. Par exemple, si l’application A ouvre l’appareil photo :

<ul>

<li>Toutes les applications s’abonnent à ActivityCallback get #onCameraUnavailable.</Li>

<li>Aucune application (y compris l’application A) s’abonnant à ActivityCallback obtient #onPhysicalCameraAvailable ou #onPhysicalCameraUnavailable, car la caméra logique n’est pas disponible (une application l’utilise).</Li>

</ul>

If android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion &ge ; android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE:

<ul>

<Li>Un changement d’état de caméra physique se déclenche #onPhysicalCameraAvailable ou #onPhysicalCameraUnavailable même après que la caméra logique ne soit plus disponible. Un #onCameraUnavailable appel pour une caméra logique ne réinitialise pas l’état de disponibilité des caméras physiques. Cela permet à une application d’ouvrir l’appareil photo logique pour savoir quelle caméra physique devient indisponible ou disponible à utiliser.</Li>

<Li>Similaire à android.os.Build.VERSION_CODES#TIRAMISU Android 13 et antérieur, le rappel de #onCameraAvailable la caméra logique implique que l’état de toutes ses caméras physiques deviennent disponibles. #onPhysicalCameraUnavailable sera appelé pour toutes les caméras physiques indisponibles lors de la mise à disposition de la caméra logique.</Li>

</ul>

Étant donné la nature du pipeline de la capture android.hardware.camera2.CaptureRequestde caméra, il peut y avoir des chutes d’images si l’application demande des images d’une caméra physique d’une caméra multi-caméra logique et que la caméra physique devient indisponible. L’application doit cesser de demander directement à partir d’une caméra physique indisponible dès qu’elle #onPhysicalCameraUnavailable est reçue, et être également prête à gérer de manière robuste les erreurs de suppression d’images pour les requêtes ciblant les caméras physiques, car ces erreurs peuvent arriver avant le rappel d’indisponibilité.

L’implémentation par défaut de cette méthode ne fait rien.

Documentation Java pour android.hardware.camera2.CameraManager.AvailabilityCallback.onPhysicalCameraAvailable(java.lang.String, java.lang.String).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à