Compartir a través de


CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Método

Definición

Una cámara física está disponible para su uso de nuevo.

[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

Parámetros

cameraId
String

Identificador único de la cámara múltiple lógica.

physicalCameraId
String

Identificador único de la cámara física.

Atributos

Comentarios

Una cámara física está disponible para su uso de nuevo.

De forma predeterminada, todas las cámaras físicas de una cámara múltiple lógica están disponibles, por lo que #onPhysicalCameraAvailable no se llama a ninguna de las cámaras físicas de una cámara múltiple lógica, cuando #onCameraAvailable se invoca la cámara múltiple lógica. Sin embargo, si algunas cámaras físicas específicas no están disponibles para comenzar, #onPhysicalCameraUnavailable se puede invocar después #onCameraAvailablede .

Si android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion es < android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE, al abrir una cámara lógica se deshabilitan las #onPhysicalCameraAvailable devoluciones de llamada y #onPhysicalCameraUnavailable para sus cámaras físicas. Por ejemplo, si la aplicación A abre el dispositivo de cámara:

<ul>

<li>Todas las aplicaciones que se suscriben a ActivityCallback obtienen #onCameraUnavailable.</Li>

<li>No hay ninguna aplicación (incluida la aplicación A) que se suscribe a ActivityCallback obtiene #onPhysicalCameraAvailable o #onPhysicalCameraUnavailable, porque la cámara lógica no está disponible (alguna aplicación lo está usando).</Li>

</ul>

Si android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersionandroid.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE:

<ul>

<li>Un cambio de estado de la cámara física se desencadenará #onPhysicalCameraAvailable o #onPhysicalCameraUnavailable incluso después de que la cámara lógica deje de estar disponible. Una #onCameraUnavailable llamada a una cámara lógica no restablece el estado de disponibilidad de las cámaras físicas. Esto permite que una aplicación abra el dispositivo de cámara lógica para saber qué cámara física deja de estar disponible o está disponible para su uso.</Li>

<li>Similar a android.os.Build.VERSION_CODES#TIRAMISU Android 13 y versiones anteriores, la devolución de llamada de #onCameraAvailable la cámara lógica implica que todo el estado de las cámaras físicas está disponible. #onPhysicalCameraUnavailable se llamará a las cámaras físicas no disponibles cuando la cámara lógica esté disponible.</Li>

</ul>

Dada la naturaleza de canalización de la captura de cámara a través android.hardware.camera2.CaptureRequestde , puede haber caídas de fotogramas si la aplicación solicita imágenes de una cámara física de una cámara múltiple lógica y esa cámara física deja de estar disponible. La aplicación debe dejar de solicitar directamente desde una cámara física no disponible tan pronto como #onPhysicalCameraUnavailable se reciba y también estar lista para controlar de forma sólida los errores de eliminación de fotogramas para las solicitudes destinadas a cámaras físicas, ya que esos errores pueden llegar antes de la devolución de llamada de no disponibilidad.

La implementación predeterminada de este método no hace nada.

Documentación de Java para android.hardware.camera2.CameraManager.AvailabilityCallback.onPhysicalCameraAvailable(java.lang.String, java.lang.String).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a