SurfaceTexture Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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.camera2
android.media.MediaCodec
android.media.MediaPlayer
API. 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 |
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 |
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 à |
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 à |
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() |
|
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. |