Lenguaje

OutputConfiguration.EnableSurfaceSharing Método

Definición

Habilitación de varias superficies que comparten la misma outputConfiguration

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

Comentarios

Habilitación de varias superficies que comparten la misma outputConfiguration

Para los casos de uso avanzados, una aplicación de cámara puede requerir más secuencias que la combinación garantizada por CameraDevice#createCaptureSession. En este caso, se puede adjuntar más de una superficie compatible a una outputConfiguration para que se asignen a una secuencia de cámara y las salidas comparten búferes de memoria siempre que sea posible. Debido al uso compartido de búferes, los clientes deben tener cuidado al agregar salidas de superficie que modifiquen sus datos de entrada. Si existe este caso, los clientes de cámara deben tener un mecanismo adicional para sincronizar el acceso de lectura y escritura entre consumidores individuales.

Dos superficies son compatibles en los casos siguientes:

<li> Surfaces con el mismo tamaño, formato, dataSpace y Surface clase de origen. En este caso, CameraDevice#createCaptureSessionByOutputConfigurations se garantiza que se realice correctamente.

<li> Surfaces con el mismo tamaño, formato y dataSpace, pero diferentes Surface clases de origen que generalmente no son compatibles. Sin embargo, en algunos dispositivos, el dispositivo de cámara subyacente puede usar el mismo diseño de búfer para ambas superficies. La única manera de detectar si este es el caso es crear una sesión de captura con esa configuración de salida. Por ejemplo, si el dispositivo de cámara usa el mismo formato de búfer privado entre SurfaceView/SurfaceTexture y mediaRecorder/MediaCodec, CameraDevice#createCaptureSessionByOutputConfigurations se realizará correctamente. De lo contrario, se produce un error con CameraCaptureSession.StateCallback#onConfigureFailed. </ol>

Para habilitar el uso compartido de superficies, se debe llamar a esta función antes CameraDevice#createCaptureSessionByOutputConfigurations o CameraDevice#createReprocessableCaptureSessionByConfigurations. Llamar a esta función después de CameraDevice#createCaptureSessionByOutputConfigurations que no tenga ningún efecto.

#getMaxSharedSurfaceCount Se pueden compartir superficies para outputConfiguration. Las superficies admitidas para compartir deben ser de tipo SurfaceTexture, SurfaceView, MediaRecorder, MediaCodec o ImageReader definida por la implementación.

No se debe llamar a esta función desde OutputConfigurations creada por #createInstancesForMultiResolutionOutput.

Documentación de Java para android.hardware.camera2.params.OutputConfiguration.enableSurfaceSharing().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a