OutputConfiguration.EnableSurfaceSharing Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Aktivieren mehrerer Oberflächen mit derselben OutputConfiguration
[Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)]
public void EnableSurfaceSharing();
[<Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)>]
member this.EnableSurfaceSharing : unit -> unit
- Attribute
Hinweise
Aktivieren mehrerer Oberflächen mit derselben OutputConfiguration
Für erweiterte Anwendungsfälle erfordert eine Kameraanwendung möglicherweise mehr Datenströme als die durch die Kombination garantierte CameraDevice#createCaptureSession. In diesem Fall können mehrere kompatible Oberflächen an eine OutputConfiguration angefügt werden, sodass sie einem Kameradatenstrom zugeordnet werden, und die Ausgaben geben speicherpuffer nach Möglichkeit frei. Aufgrund der Pufferfreigabe sollten Clients beim Hinzufügen von Oberflächenausgaben, die ihre Eingabedaten ändern, vorsichtig sein. Wenn ein solcher Fall vorhanden ist, sollten Kameraclients einen zusätzlichen Mechanismus zum Synchronisieren des Lese- und Schreibzugriffs zwischen einzelnen Verbrauchern haben.
Zwei Oberflächen sind in den folgenden Fällen kompatibel:
<Li> Surfaces mit der gleichen Größe, formatieren, dataSpace und Surface Quellklasse. In diesem Fall CameraDevice#createCaptureSessionByOutputConfigurations ist der Erfolg garantiert.
<Li> Surfaces mit der gleichen Größe, demselben Format und dataSpace, aber unterschiedlichen Surface Quellklassen, die im Allgemeinen nicht kompatibel sind. Auf einigen Geräten kann das zugrunde liegende Kameragerät jedoch das gleiche Pufferlayout für beide Oberflächen verwenden. Die einzige Möglichkeit, zu ermitteln, ob dies der Fall ist, besteht darin, eine Aufnahmesitzung mit dieser Ausgabekonfiguration zu erstellen. Wenn das Kameragerät z. B. das gleiche private Pufferformat zwischen surfaceView/SurfaceTexture und mediaRecorder/MediaCodec verwendet, CameraDevice#createCaptureSessionByOutputConfigurations ist dies erfolgreich. Andernfalls schlägt sie mit CameraCaptureSession.StateCallback#onConfigureFailed.
</ol>
Um die Oberflächenfreigabe zu aktivieren, muss diese Funktion vor oder vor CameraDevice#createCaptureSessionByOutputConfigurations oder CameraDevice#createReprocessableCaptureSessionByConfigurationsaufgerufen werden. Das Aufrufen dieser Funktion nach CameraDevice#createCaptureSessionByOutputConfigurations keinem Effekt.
Bis zu #getMaxSharedSurfaceCount Oberflächen können für eine OutputConfiguration freigegeben werden. Die unterstützten Oberflächen für die Freigabe müssen vom Typ "SurfaceTexture", "SurfaceView", "MediaRecorder", "MediaCodec" oder "ImageReader" definiert sein.
Diese Funktion darf nicht von OutputConfigurations aufgerufen werden, die von #createInstancesForMultiResolutionOutput.
Java Dokumentation für android.hardware.camera2.params.OutputConfiguration.enableSurfaceSharing().
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.