Freigeben über


CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Methode

Definition

Eine physische Kamera ist wieder verfügbar.

[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

Parameter

cameraId
String

Der eindeutige Bezeichner der logischen Multikamera.

physicalCameraId
String

Der eindeutige Bezeichner der physischen Kamera.

Attribute

Hinweise

Eine physische Kamera ist wieder verfügbar.

Standardmäßig sind alle physischen Kameras einer logischen Multikamera verfügbar, daher #onPhysicalCameraAvailable wird nicht für eine der physischen Kameras einer logischen Multikamera aufgerufen, wenn #onCameraAvailable für die logische Multikamera aufgerufen wird. Wenn jedoch einige bestimmte physische Kameras nicht verfügbar sind, um mit ihnen zu beginnen, #onPhysicalCameraUnavailable kann nach #onCameraAvailabledem Aufruf aufgerufen werden.

Wenn android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion < android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE, deaktiviert das Öffnen einer logischen Kamera die #onPhysicalCameraAvailable und #onPhysicalCameraUnavailable Rückrufe für seine physischen Kameras. Beispiel: Wenn app A das Kameragerät öffnet:

<ul>

<li>Alle Apps, die ActivityCallback abonnieren.#onCameraUnavailable</Li>

<li>Keine App (einschließlich App A), die ActivityCallback abonniert, ruft #onPhysicalCameraAvailable ab oder #onPhysicalCameraUnavailable, da die logische Kamera nicht verfügbar ist (einige App verwendet sie).</Li>

</ul>

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

<ul>

<li>Eine Änderung des physischen Kamerastatus wird ausgelöst #onPhysicalCameraAvailable oder #onPhysicalCameraUnavailable sogar, nachdem die logische Kamera nicht verfügbar ist. Ein #onCameraUnavailable Aufruf einer logischen Kamera setzt den Verfügbarkeitsstatus der physischen Kameras nicht zurück. Dadurch ist es möglich, dass eine Anwendung das logische Kameragerät öffnet, um zu wissen, welche physische Kamera nicht verfügbar oder verfügbar ist.</Li>

<li>ähnlich android.os.Build.VERSION_CODES#TIRAMISU Android 13 und früher bedeutet der Rückruf der logischen Kamera #onCameraAvailable , dass alle physischen Kameras verfügbar sind. #onPhysicalCameraUnavailable wird aufgerufen, dass alle nicht verfügbaren physischen Kameras aufgerufen werden, sobald die logische Kamera verfügbar wird.</Li>

</ul>

Angesichts der Pipeline-Art der Kameraaufnahme android.hardware.camera2.CaptureRequestdurch , kann es Frame-Tropfen geben, wenn die Anwendung Bilder von einer physischen Kamera einer logischen Multikamera anfordert und diese physische Kamera nicht verfügbar wird. Die Anwendung sollte nicht mehr direkt von einer nicht verfügbaren physischen Kamera anfordern, sobald #onPhysicalCameraUnavailable sie empfangen wird, und auch bereit sein, Frame-Drop-Fehler für Anforderungen, die auf physische Kameras abzielen, zu behandeln, da diese Fehler vor dem Nichtverfügbarkeitsrückruf auftreten können.

Die Standardimplementierung dieser Methode führt nichts aus.

Java-Dokumentation für android.hardware.camera2.CameraManager.AvailabilityCallback.onPhysicalCameraAvailable(java.lang.String, java.lang.String).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: