OutputConfiguration.EnableSurfaceSharing Metodo

Definizione

Abilitare più superfici che condividono lo stesso OutputConfiguration

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

Commenti

Abilitare più superfici che condividono lo stesso OutputConfiguration

Per i casi d'uso avanzati, un'applicazione fotocamera può richiedere più flussi rispetto alla combinazione garantita da CameraDevice#createCaptureSession. In questo caso, è possibile collegare più di una superficie compatibile a un outputConfiguration in modo che esegano il mapping a un flusso della fotocamera e gli output condividono i buffer di memoria quando possibile. A causa della condivisione del buffer, i client devono prestare attenzione quando si aggiungono output di superficie che modificano i dati di input. Se tale caso esiste, i client della fotocamera devono disporre di un meccanismo aggiuntivo per sincronizzare l'accesso in lettura e scrittura tra singoli consumer.

Due superfici sono compatibili nei casi seguenti:

<li> Surface con le stesse dimensioni, formato, dataSpace e Surface classe di origine. In questo caso, CameraDevice#createCaptureSessionByOutputConfigurations è garantito l'esito positivo.

<li> Surface con le stesse dimensioni, formato e dataSpace, ma classi di origine Surface diverse che in genere non sono compatibili. Tuttavia, in alcuni dispositivi, il dispositivo fotocamera sottostante è in grado di usare lo stesso layout del buffer per entrambe le superfici. L'unico modo per individuare se questo è il caso consiste nel creare una sessione di acquisizione con tale configurazione di output. Ad esempio, se il dispositivo fotocamera usa lo stesso formato di buffer privato tra SurfaceView/SurfaceTexture e MediaRecorder/MediaCodec, CameraDevice#createCaptureSessionByOutputConfigurations avrà esito positivo. In caso contrario, ha esito negativo con CameraCaptureSession.StateCallback#onConfigureFailed. </ol>

Per abilitare la condivisione della superficie, questa funzione deve essere chiamata prima CameraDevice#createCaptureSessionByOutputConfigurations o CameraDevice#createReprocessableCaptureSessionByConfigurations. La chiamata a questa funzione dopo CameraDevice#createCaptureSessionByOutputConfigurations non ha alcun effetto.

È possibile condividere fino alle #getMaxSharedSurfaceCount superfici per un outputConfiguration. Le superfici supportate per la condivisione devono essere di tipo SurfaceTexture, SurfaceView, MediaRecorder, MediaCodec o implementazione definite da ImageReader.

Questa funzione non deve essere chiamata da OutputConfigurations creata da #createInstancesForMultiResolutionOutput.

per android.hardware.camera2.params.OutputConfiguration.enableSurfaceSharing().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a