Поделиться через


CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Метод

Определение

Физическая камера стала доступной для использования еще раз.

[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

Параметры

cameraId
String

Уникальный идентификатор логической многокамерной камеры.

physicalCameraId
String

Уникальный идентификатор физической камеры.

Атрибуты

Комментарии

Физическая камера стала доступной для использования еще раз.

По умолчанию все физические камеры логической многокамерной камеры доступны, поэтому #onPhysicalCameraAvailable не вызывается для любой физической камеры логической многокамерной камеры, когда #onCameraAvailable вызывается логическая многокамерная камера. Однако, если некоторые физические камеры недоступны для начала, #onPhysicalCameraUnavailable может вызываться после #onCameraAvailable.

Если android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion < android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKEоткрытие логической камеры отключает #onPhysicalCameraAvailable и #onPhysicalCameraUnavailable обратные вызовы для своих физических камер. Например, если приложение A открывает устройство камеры:

<ul>

<li>Все приложения подписываться на ActivityCallback get #onCameraUnavailable.</Литий>

<li>Нет приложения (включая приложение A) подписку на ActivityCallback получает #onPhysicalCameraAvailable или #onPhysicalCameraUnavailable, так как логическая камера недоступна (некоторые приложения используют его).</Литий>

</ul>

Если android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersionandroid.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE:

<ul>

<li>Изменение состояния физической камеры активируется #onPhysicalCameraAvailable или #onPhysicalCameraUnavailable даже после того, как логическая камера становится недоступной. Вызов #onCameraUnavailable логической камеры не сбрасывает состояние доступности физических камер. Это позволяет приложению открывать устройство логической камеры, чтобы узнать, какая физическая камера становится недоступной или доступной для использования.</Литий>

<li>Как android.os.Build.VERSION_CODES#TIRAMISU Android 13 и раньше, обратный вызов логической камеры #onCameraAvailable подразумевает, что все его физические камеры становятся доступными. #onPhysicalCameraUnavailable будет вызываться для любых недоступных физических камер после того, как логическая камера становится доступной.</Литий>

</ul>

Учитывая природу конвейера захвата android.hardware.camera2.CaptureRequestкамеры, может возникать падение кадров, если приложение запрашивает изображения из физической камеры логической многокамерной камеры и что физическая камера становится недоступной. Приложение должно перестать запрашивать непосредственно из недоступной физической камеры сразу после #onPhysicalCameraUnavailable получения, а также быть готовым к надежной обработке ошибок удаления кадров для запросов, предназначенных для физических камер, так как эти ошибки могут поступать до недоступности обратного вызова.

Реализация этого метода по умолчанию ничего не делает.

Документация по Java для android.hardware.camera2.CameraManager.AvailabilityCallback.onPhysicalCameraAvailable(java.lang.String, java.lang.String).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к