Compartilhar via


CameraManager.AvailabilityCallback.OnPhysicalCameraAvailable Método

Definição

Uma câmera física ficou disponível para uso novamente.

[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

O identificador exclusivo da multicâmera lógica.

physicalCameraId
String

O identificador exclusivo da câmera física.

Atributos

Comentários

Uma câmera física ficou disponível para uso novamente.

Por padrão, todas as câmeras físicas de uma multicâmera lógica estão disponíveis, portanto #onPhysicalCameraAvailable , não é chamada para nenhuma das câmeras físicas de uma multicâmera lógica, quando #onCameraAvailable para a multicâmera lógica é invocada. No entanto, se algumas câmeras físicas específicas não estiverem disponíveis para começar, #onPhysicalCameraUnavailable podem ser invocadas após #onCameraAvailable.

Se android.content.pm.ApplicationInfo#targetSdkVersion targetSdkVersion < android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE, abrir uma câmera lógica desabilita os #onPhysicalCameraAvailable retornos de chamada e #onPhysicalCameraUnavailable para suas câmeras físicas. Por exemplo, se o aplicativo A abrir o dispositivo da câmera:

<ul>

<li>Todos os aplicativos que assinam o ActivityCallback obtêm #onCameraUnavailable.</li>

<li>Nenhum aplicativo (incluindo o aplicativo A) que assina o ActivityCallback recebe #onPhysicalCameraAvailable ou #onPhysicalCameraUnavailable, porque a câmera lógica não está disponível (algum aplicativo está usando-o).</li>

</ul>

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

<ul>

<li>Uma alteração de status da câmera física será acionada #onPhysicalCameraAvailable ou #onPhysicalCameraUnavailable mesmo depois que a câmera lógica ficar indisponível. Uma #onCameraUnavailable chamada para uma câmera lógica não redefine o status de disponibilidade das câmeras físicas. Isso possibilita que um aplicativo que abre o dispositivo de câmera lógica saiba qual câmera física se torna indisponível ou disponível para uso.</li>

<Semelhante>e android.os.Build.VERSION_CODES#TIRAMISU Android 13 anterior, o retorno de chamada da #onCameraAvailable câmera lógica implica que o status de todas as suas câmeras físicas fique disponível. #onPhysicalCameraUnavailable será chamada para quaisquer câmeras físicas indisponíveis quando a câmera lógica estiver disponível.</li>

</ul>

Dada a natureza de pipeline da captura da câmera através android.hardware.camera2.CaptureRequestdo , pode haver quedas de quadros se o aplicativo solicitar imagens de uma câmera física de uma multicâmera lógica e essa câmera física ficar indisponível. O aplicativo deve parar de solicitar diretamente de uma câmera física indisponível assim que #onPhysicalCameraUnavailable for recebido, e também estar pronto para lidar com erros de queda de quadro para solicitações direcionadas a câmeras físicas, uma vez que esses erros podem chegar antes do retorno de chamada de indisponibilidade.

A implementação padrão desse método não faz nada.

Documentação Java para android.hardware.camera2.CameraManager.AvailabilityCallback.onPhysicalCameraAvailable(java.lang.String, java.lang.String).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a