Langue

OutputConfiguration.EnableSurfaceSharing Méthode

Définition

Activer plusieurs surfaces partageant le même OutputConfiguration

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

Remarques

Activer plusieurs surfaces partageant le même OutputConfiguration

Pour les cas d’usage avancés, une application de caméra peut nécessiter plus de flux que la combinaison garantie par CameraDevice#createCaptureSession. Dans ce cas, plusieurs surfaces compatibles peuvent être attachées à une OutputConfiguration afin qu’elles correspondent à un flux d’appareil photo et que les sorties partagent des mémoires tampons lorsque cela est possible. En raison du partage de mémoires tampons, les clients doivent être prudents lors de l’ajout de sorties de surface qui modifient leurs données d’entrée. S’il existe un tel cas, les clients de caméra doivent disposer d’un mécanisme supplémentaire pour synchroniser l’accès en lecture et en écriture entre les consommateurs individuels.

Deux surfaces sont compatibles dans les cas suivants :

<li> Surfaces avec la même taille, le même format, dataSpace et Surface classe source. Dans ce cas, CameraDevice#createCaptureSessionByOutputConfigurations elle est garantie de réussir.

<li> Surfaces avec la même taille, le même format et dataSpace, mais différentes Surface classes sources qui ne sont généralement pas compatibles. Toutefois, sur certains appareils, l’appareil photo sous-jacent est en mesure d’utiliser la même disposition de mémoire tampon pour les deux surfaces. La seule façon de découvrir si c’est le cas est de créer une session de capture avec cette configuration de sortie. Par exemple, si l’appareil photo utilise le même format de mémoire tampon privée entre un SurfaceView/SurfaceTexture et un MediaRecorder/MediaCodec, CameraDevice#createCaptureSessionByOutputConfigurations réussit. Sinon, elle échoue avec CameraCaptureSession.StateCallback#onConfigureFailed. </ol>

Pour activer le partage de surface, cette fonction doit être appelée avant CameraDevice#createCaptureSessionByOutputConfigurations ou CameraDevice#createReprocessableCaptureSessionByConfigurations. L’appel de cette fonction après CameraDevice#createCaptureSessionByOutputConfigurations n’a aucun effet.

Vous pouvez partager jusqu’à #getMaxSharedSurfaceCount des surfaces pour une OutputConfiguration. Les surfaces prises en charge pour le partage doivent être de type SurfaceTexture, SurfaceView, MediaRecorder, MediaCodec ou ImageReader définie par l’implémentation.

Cette fonction ne doit pas être appelée à partir de OutputConfigurations créée par #createInstancesForMultiResolutionOutput.

Java documentation pour android.hardware.camera2.params.OutputConfiguration.enableSurfaceSharing().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à