Idioma

OutputConfiguration.EnableSurfaceSharing Método

Definição

Habilitar várias superfícies compartilhando o mesmo OutputConfiguration

[Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)]
public void EnableSurfaceSharing();
[<Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)>]
member this.EnableSurfaceSharing : unit -> unit
Atributos

Comentários

Habilitar várias superfícies compartilhando o mesmo OutputConfiguration

Para casos de uso avançado, um aplicativo de câmera pode exigir mais fluxos do que a combinação garantida por CameraDevice#createCaptureSession. Nesse caso, mais de uma superfície compatível pode ser anexada a uma OutputConfiguration para que elas sejam mapeadas para um fluxo de câmera e as saídas compartilhem buffers de memória quando possível. Devido ao compartilhamento de buffer, os clientes devem ter cuidado ao adicionar saídas de superfície que modificam seus dados de entrada. Se esse caso existir, os clientes de câmera deverão ter um mecanismo adicional para sincronizar o acesso de leitura e gravação entre consumidores individuais.

Duas superfícies são compatíveis nos casos abaixo:

<li> Surfaces com o mesmo tamanho, formato, dataSpace e Surface classe de origem. Nesse caso, CameraDevice#createCaptureSessionByOutputConfigurations é garantida a êxito.

<li> Surfaces com o mesmo tamanho, formato e dataSpace, mas diferentes Surface classes de origem que geralmente não são compatíveis. No entanto, em alguns dispositivos, o dispositivo de câmera subjacente é capaz de usar o mesmo layout de buffer para ambas as superfícies. A única maneira de descobrir se esse é o caso é criar uma sessão de captura com essa configuração de saída. Por exemplo, se o dispositivo de câmera usar o mesmo formato de buffer privado entre um SurfaceView/SurfaceTexture e um MediaRecorder/MediaCodec, CameraDevice#createCaptureSessionByOutputConfigurations será bem-sucedido. Caso contrário, ele falhará com CameraCaptureSession.StateCallback#onConfigureFailed. </ol>

Para habilitar o compartilhamento de superfície, essa função deve ser chamada antes CameraDevice#createCaptureSessionByOutputConfigurations ou CameraDevice#createReprocessableCaptureSessionByConfigurations. Chamar essa função depois CameraDevice#createCaptureSessionByOutputConfigurations não tem efeito.

Até superfícies #getMaxSharedSurfaceCount podem ser compartilhadas para um OutputConfiguration. As superfícies com suporte para compartilhamento devem ser do tipo SurfaceTexture, SurfaceView, MediaRecorder, MediaCodec ou ImageReader definido pela implementação.

Essa função não deve ser chamada de OutputConfigurations criadas por #createInstancesForMultiResolutionOutput.

Java documentação para android.hardware.camera2.params.OutputConfiguration.enableSurfaceSharing().

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

Aplica-se a