OutputConfiguration.EnableSurfaceSharing メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
同じ OutputConfiguration を共有する複数のサーフェスを有効にする
[Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)]
public void EnableSurfaceSharing();
[<Android.Runtime.Register("enableSurfaceSharing", "()V", "", ApiSince=26)>]
member this.EnableSurfaceSharing : unit -> unit
- 属性
注釈
同じ OutputConfiguration を共有する複数のサーフェスを有効にする
高度なユース ケースでは、カメラ アプリケーションでは、 CameraDevice#createCaptureSessionによって保証される組み合わせよりも多くのストリームが必要になる場合があります。 この場合、複数の互換性のあるサーフェスを OutputConfiguration にアタッチして、1 つのカメラ ストリームにマップし、可能な場合は出力でメモリ バッファーを共有することができます。 バッファー共有クライアントは、入力データを変更するサーフェス出力を追加するときは注意する必要があります。 このようなケースが存在する場合、カメラ クライアントには、個々のコンシューマー間で読み取りと書き込みのアクセスを同期するための追加のメカニズムが必要です。
次の場合、2 つのサーフェスに互換性があります。
<li> 同じサイズ、形式、dataSpace、およびSurfaceソース クラスを持つサーフェス。 この場合、 CameraDevice#createCaptureSessionByOutputConfigurations は成功することが保証されます。
<li> 同じサイズ、形式、および dataSpace を持つサーフェスですが、一般的に互換性のない異なるSurfaceソース クラスです。 ただし、一部のデバイスでは、基になるカメラ デバイスは両方のサーフェスに同じバッファー レイアウトを使用できます。 これが当てはまるかどうかを検出する唯一の方法は、その出力構成でキャプチャ セッションを作成することです。 たとえば、カメラ デバイスが SurfaceView/SurfaceTexture と MediaRecorder/MediaCodec の間で同じプライベート バッファー形式を使用している場合、 CameraDevice#createCaptureSessionByOutputConfigurations は成功します。 それ以外の場合は、 CameraCaptureSession.StateCallback#onConfigureFailedで失敗します。
</ol>
サーフェス共有を有効にするには、この関数を CameraDevice#createCaptureSessionByOutputConfigurations または CameraDevice#createReprocessableCaptureSessionByConfigurationsする前に呼び出す必要があります。
CameraDevice#createCaptureSessionByOutputConfigurations後にこの関数を呼び出しても効果はありません。
OutputConfiguration では、最大 #getMaxSharedSurfaceCount サーフェスを共有できます。 共有でサポートされるサーフェスの種類は、SurfaceTexture、SurfaceView、MediaRecorder、MediaCodec、または実装定義 ImageReader である必要があります。
この関数は、 #createInstancesForMultiResolutionOutputによって作成された OutputConfigurations から呼び出してはなりません。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。