次の方法で共有


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 テクスチャとしてフレームをキャプチャします。

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

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

テクスチャからのサンプリングでは、最初にクエリを実行したマトリックス #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 ドキュメントandroid.graphics.SurfaceTexture

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

SurfaceTexture(Boolean)

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

SurfaceTexture(Int32)

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

SurfaceTexture(Int32, Boolean)

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

SurfaceTexture(IntPtr, JniHandleOwnership)

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

プロパティ

Class

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

(継承元 Object)
DataSpace

テクスチャ イメージに関連付けられているデータ空間を取得します。

Handle

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

(継承元 Object)
IsReleased

true SurfaceTexture が解放されたかどうかを返します。

JniIdentityHashCode

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

(継承元 Object)
JniPeerMembers

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

PeerReference

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

(継承元 Object)
ThresholdClass

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

ThresholdType

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

Timestamp

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

メソッド

AttachToGLContext(Int32)

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

Clone()

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

(継承元 Object)
DetachFromGLContext()

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

Dispose()

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

(継承元 Object)
Dispose(Boolean)

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

(継承元 Object)
Equals(Object)

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

(継承元 Object)
GetHashCode()

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

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

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

JavaFinalize()

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

(継承元 Object)
Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
Release()

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

ReleaseTexImage()

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

SetDefaultBufferSize(Int32, Int32)

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

SetHandle(IntPtr, JniHandleOwnership)

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

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

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

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

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

ToArray<T>()

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

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

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

(継承元 Object)
UpdateTexImage()

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

Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

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

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

イベント

FrameAvailable

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

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

IJavaPeerable.Disposed()

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

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(継承元 Object)
IJavaPeerable.Finalized()

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

(継承元 Object)
IJavaPeerable.JniManagedPeerState

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

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

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

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

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

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

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

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象