CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 #onCameraAvailable
de .
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 targetSdkVersion
≥ android.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.CaptureRequest
de , 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.
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.