SurfaceTexture クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
イメージ ストリームから 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
- 継承
- 属性
注釈
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。
イメージ ストリームは、カメラプレビューまたはビデオデコードから取得できます。 android.view.Surface
SurfaceTexture から作成された API は、API、、android.media.MediaPlayer
および android.renderscript.Allocation
API のandroid.hardware.camera2
android.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, Boolean) |
特定の OpenGL テクスチャにイメージをストリーミングする新しい SurfaceTexture を構築します。 |
SurfaceTexture(Int32) |
特定の OpenGL テクスチャにイメージをストリーミングする新しい SurfaceTexture を構築します。 |
SurfaceTexture(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Class |
この |
DataSpace |
テクスチャ イメージに関連付けられているデータ空間を取得します。 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsReleased |
|
JniIdentityHashCode |
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。 (継承元 Object) |
JniPeerMembers |
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。 |
PeerReference |
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。 (継承元 Object) |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
Timestamp |
への最新の呼び出しによって設定されたテクスチャ イメージに関連付けられているタイムスタンプを取得します |
メソッド
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 テクスチャ座標変換マトリックスを取得します |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Release() |
|
ReleaseTexImage() |
テクスチャ コンテンツを解放します。 |
SetDefaultBufferSize(Int32, Int32) |
イメージ バッファーの既定のサイズを設定します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler) |
SurfaceTexture で新しいイメージ フレームが使用可能になったときに呼び出されるコールバックを登録します。 |
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener) |
SurfaceTexture で新しいイメージ フレームが使用可能になったときに呼び出されるコールバックを登録します。 |
ToArray<T>() |
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
イメージ ストリームから OpenGL ES テクスチャとしてフレームをキャプチャします。 (継承元 Object) |
UpdateTexImage() |
テクスチャ イメージをイメージ ストリームから最新のフレームに更新します。 |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/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 テクスチャとしてフレームをキャプチャします。 |