Partager via


SurfaceTexture Classe

Définition

Capture des images à partir d’un flux d’images sous forme de texture 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
Héritage
SurfaceTexture
Attributs

Remarques

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

Le flux d’images peut provenir de l’aperçu de l’appareil photo ou du décodage vidéo. Une android.view.Surface création à partir d’un SurfaceTexture peut être utilisée comme destination de sortie pour les API et android.renderscript.Allocation les android.hardware.camera2android.media.MediaCodecandroid.media.MediaPlayerAPI. Lorsqu’il #updateTexImage est appelé, le contenu de l’objet de texture spécifié lors de la création de SurfaceTexture est mis à jour pour contenir l’image la plus récente du flux d’images. Cela peut entraîner l’ignorer de certaines images du flux.

Un SurfaceTexture peut également être utilisé à la place d’un SurfaceHolder lors de la spécification de la destination de sortie de l’ancienne android.hardware.Camera API. Cela entraîne l’envoi de tous les cadres du flux d’images à l’objet SurfaceTexture plutôt qu’à l’affichage de l’appareil.

Lors de l’échantillonnage à partir de la texture, vous devez d’abord transformer les coordonnées de texture à l’aide de la matrice interrogée via #getTransformMatrix(float[]). La matrice de transformation peut changer chaque fois #updateTexImage qu’elle est appelée. Elle doit donc être interrogée à nouveau chaque fois que l’image de texture est mise à jour. Cette matrice transforme les vecteurs de colonne de coordonnées de texture OpenGL ES traditionnels de la forme (s, t, 0, 1) où s et t se trouvent sur l’intervalle inclusif [0, 1] vers l’emplacement d’échantillonnage approprié dans la texture diffusée. Cette transformation compense toutes les propriétés de la source de flux d’images qui l’entraînent à apparaître différemment d’une texture OpenGL ES traditionnelle. Par exemple, l’échantillonnage à partir du coin inférieur gauche de l’image peut être effectué en transformant le vecteur de colonne (0, 0, 0, 1) à l’aide de la matrice interrogée, tandis que l’échantillonnage à partir du coin supérieur droit de l’image peut être effectué en transformant (1, 1, 0, 1).

L’objet texture utilise la cible de texture GL_TEXTURE_EXTERNAL_OES, définie par l’extension OpenGL ES GL_OES_EGL_image_external . Cela limite l’utilisation de la texture. Chaque fois que la texture est liée, elle doit être liée à la cible GL_TEXTURE_EXTERNAL_OES plutôt qu’à la cible GL_TEXTURE_2D. En outre, tout nuanceur OpenGL ES 2.0 qui échantillonne de la texture doit déclarer son utilisation de cette extension à l’aide, par exemple, d’une directive « #extension GL_OES_EGL_image_external : require ». Ces nuanceurs doivent également accéder à la texture à l’aide du type samplerExternalOES GLSL sampler.

Les objets SurfaceTexture peuvent être créés sur n’importe quel thread. #updateTexImage peut uniquement être appelé sur le thread avec le contexte OpenGL ES qui contient l’objet de texture. Le rappel disponible en frame est appelé sur un thread arbitraire. Par conséquent, sauf si des précautions #updateTexImage particulières ne doivent pas être appelées directement à partir du rappel.

Documentation Java pour android.graphics.SurfaceTexture.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

SurfaceTexture(Boolean)

Construisez un nouveau SurfaceTexture pour diffuser en continu des images vers une texture OpenGL donnée.

SurfaceTexture(Int32, Boolean)

Construisez un nouveau SurfaceTexture pour diffuser en continu des images vers une texture OpenGL donnée.

SurfaceTexture(Int32)

Construisez un nouveau SurfaceTexture pour diffuser en continu des images vers une texture OpenGL donnée.

SurfaceTexture(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
DataSpace

Récupérez l’espace de données associé à l’image de texture.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsReleased

Retourne true si SurfaceTexture a été libéré.

JniIdentityHashCode

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
JniPeerMembers

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

PeerReference

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Timestamp

Récupérez l’horodatage associé à l’image de texture définie par l’appel le plus récent à #updateTexImage.

Méthodes

AttachToGLContext(Int32)

Attachez surfaceTexture au contexte OpenGL ES actif sur le thread appelant.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
DetachFromGLContext()

Détachez le SurfaceTexture du contexte OpenGL ES qui possède l’objet de texture OpenGL ES.

Dispose()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
Dispose(Boolean)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
GetTransformMatrix(Single[])

Récupérez la matrice de transformation de coordonnées de texture 4x4 associée à l’image de texture définie par l’appel le plus récent à #updateTexImage.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Release()

release() libère toutes les mémoires tampons et place surfaceTexture dans l’état « abandonné ».

ReleaseTexImage()

Libère le contenu de texture.

SetDefaultBufferSize(Int32, Int32)

Définissez la taille par défaut des mémoires tampons d’image.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

Inscrivez un rappel à appeler lorsqu’un nouveau cadre d’image devient disponible pour SurfaceTexture.

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener)

Inscrivez un rappel à appeler lorsqu’un nouveau cadre d’image devient disponible pour SurfaceTexture.

ToArray<T>()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
UpdateTexImage()

Mettez à jour l’image de texture vers le cadre le plus récent à partir du flux d’images.

Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou> <em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Événements

FrameAvailable

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.Finalized()

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

GetJniTypeName(IJavaPeerable)

Capture des images à partir d’un flux d’images sous forme de texture OpenGL ES.

S’applique à