Language

SurfaceTexture クラス

定義

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

[Android.Runtime.Register("android/graphics/SurfaceTexture", DoNotGenerateAcw=true)]
public class SurfaceTexture : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/SurfaceTexture", DoNotGenerateAcw=true)>]
type SurfaceTexture = class
    inherit Object
継承
SurfaceTexture
属性

注釈

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

イメージ ストリームは、カメラプレビューまたはビデオデコードから取得できます。 SurfaceTexture から作成された android.view.Surface は、 android.hardware.camera2、 android.media.MediaCodec、 android.media.MediaPlayer、および android.renderscript.Allocation API の出力先として使用できます。 #updateTexImageが呼び出されると、SurfaceTexture の作成時に指定されたテクスチャ オブジェクトの内容が更新され、イメージ ストリームの最新のイメージが含まれます。 これにより、ストリームの一部のフレームがスキップされる可能性があります。

SurfaceTexture は、以前の android.hardware.Camera API の出力先を指定するときに、SurfaceHolder の代わりに使用することもできます。 これにより、イメージ ストリームからのすべてのフレームが、デバイスのディスプレイではなく SurfaceTexture オブジェクトに送信されます。

一般的なパターンは、SurfaceTexture を使用してフレームを TextureViewにレンダリングすることですが、テクスチャ オブジェクトを使用するには TextureView は 必要 ありません。 テクスチャ オブジェクトは、OpenGL ES シェーダーの一部として使用できます。

テクスチャからのサンプリングでは、まず、 #getTransformMatrix(float[])を介してクエリされたマトリックスを使用してテクスチャ座標を変換する必要があります。 変換マトリックスは、 #updateTexImage が呼び出されるたびに変更される可能性があるため、テクスチャ イメージが更新されるたびに再クエリを実行する必要があります。 このマトリックスは、従来の 2D OpenGL ES テクスチャ座標列ベクトル (s, t, 0, 1) を変換します。ここで、s と t は包括間隔 [0, 1] 上にあり、ストリーミング テクスチャ内の適切なサンプリング位置に変換されます。 この変換は、従来の OpenGL ES テクスチャとは異なるイメージ ストリーム ソースのプロパティを補正します。 たとえば、画像の左下隅からのサンプリングは、クエリされたマトリックスを使用して列ベクトル (0,0, 0, 1) を変換することで実現できます。一方、画像の右上隅からのサンプリングは変換 (1, 1, 0, 1) で行うことができます。

テクスチャ オブジェクトは、GL_OES_EGL_image_external OpenGL ES 拡張機能によって定義される GL_TEXTURE_EXTERNAL_OES テクスチャ ターゲットを使用します。 これにより、テクスチャの使用方法が制限されます。 テクスチャがバインドされるたびに、GL_TEXTURE_2D ターゲットではなく、GL_TEXTURE_EXTERNAL_OES ターゲットにバインドする必要があります。 さらに、テクスチャからサンプリングする OpenGL ES 2.0 シェーダーでは、"#extension GL_OES_EGL_image_external : require" ディレクティブなどを使用して、この拡張機能の使用を宣言する必要があります。 このようなシェーダーは、samplerExternalOES GLSL サンプラー型を使用してテクスチャにもアクセスする必要があります。

SurfaceTexture オブジェクトは、任意のスレッドで作成できます。 #updateTexImage は、テクスチャ オブジェクトを含む OpenGL ES コンテキストを持つスレッドでのみ呼び出されます。 フレーム使用可能なコールバックは任意のスレッドで呼び出されるため、特別な注意を払わない限り、 #updateTexImage コールバックから直接呼び出さないでください。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

Name 説明
SurfaceTexture(Boolean)

特定の OpenGL テクスチャにイメージをストリーミングする新しい SurfaceTexture を構築します。

SurfaceTexture(Int32, Boolean)

特定の OpenGL テクスチャにイメージをストリーミングする新しい SurfaceTexture を構築します。

SurfaceTexture(Int32)

特定の OpenGL テクスチャにイメージをストリーミングする新しい SurfaceTexture を構築します。

SurfaceTexture(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

Name 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
DataSpace

#updateTexImageの最新の呼び出しによって設定されたテクスチャ イメージに関連付けられているデータ空間を取得します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsReleased

SurfaceTexture が解放された場合に true を返します。

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
JniPeerMembers

このJava バインドのメンバーにアクセスするために使用される JNI メタデータを取得します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

Timestamp

#updateTexImageの最新の呼び出しによって設定されたテクスチャ イメージに関連付けられているタイムスタンプを取得します。

メソッド

Name 説明
AttachToGLContext(Int32)

呼び出し元スレッドで現在の OpenGL ES コンテキストに SurfaceTexture をアタッチします。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
DetachFromGLContext()

OpenGL ES テクスチャ オブジェクトを所有する OpenGL ES コンテキストから SurfaceTexture をデタッチします。

Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
Equals(Object)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetTransformMatrix(Single[])

#updateTexImageの最新の呼び出しによって設定されたテクスチャ イメージに関連付けられた 4x4 テクスチャ座標変換マトリックスを取得します。

JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Release()

release() は、すべてのバッファーを解放し、SurfaceTexture を "破棄済み" 状態にします。

ReleaseTexImage()

テクスチャ コンテンツを解放します。

SetDefaultBufferSize(Int32, Int32)

イメージ バッファーの既定のサイズを設定します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

SurfaceTexture で新しいイメージ フレームが使用可能になったときに呼び出されるコールバックを登録します。

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener)

SurfaceTexture で新しいイメージ フレームが使用可能になったときに呼び出されるコールバックを登録します。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
UpdateTexImage()

テクスチャ イメージをイメージ ストリームから最新のフレームに更新します。

Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

イベント

Name 説明
FrameAvailable

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

明示的なインターフェイスの実装

Name 説明
IJavaPeerable.Disposed()

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
IJavaPeerable.Finalized()

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

(継承元 JavaObject)

拡張メソッド

Name 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象