Compartir a través de


SurfaceTexture Clase

Definición

Captura los fotogramas de una secuencia de imágenes como una textura de 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
Herencia
SurfaceTexture
Atributos

Comentarios

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

La secuencia de imágenes puede provenir de la vista previa de la cámara o descodificación de vídeo. Un android.view.Surface objeto creado a partir de SurfaceTexture se puede usar como destino de salida para las android.hardware.camera2API , android.media.MediaCodec, android.media.MediaPlayery android.renderscript.Allocation . Cuando #updateTexImage se llama a , el contenido del objeto de textura especificado cuando se creó SurfaceTexture se actualiza para contener la imagen más reciente de la secuencia de imágenes. Esto puede hacer que se omitan algunos fotogramas de la secuencia.

También se puede usar SurfaceTexture en lugar de surfaceHolder al especificar el destino de salida de la API anterior android.hardware.Camera . Si lo hace, todos los fotogramas de la secuencia de imágenes se enviarán al objeto SurfaceTexture en lugar de a la pantalla del dispositivo.

Cuando el muestreo de la textura debe transformar primero las coordenadas de textura mediante la matriz consultada a través #getTransformMatrix(float[])de . La matriz de transformación puede cambiar cada vez #updateTexImage que se llama, por lo que se debe volver a consultar cada vez que se actualiza la imagen de textura. Esta matriz transforma los vectores de columna de coordenadas de textura 2D OpenGL ES tradicionales del formulario (s, t, 0, 1) donde s y t se encuentran en el intervalo inclusivo [0, 1] a la ubicación de muestreo adecuada en la textura secuenciada. Esta transformación compensa las propiedades del origen de flujo de imagen que hacen que parezca diferente de una textura tradicional de OpenGL ES. Por ejemplo, el muestreo desde la esquina inferior izquierda de la imagen se puede realizar mediante la transformación del vector de columna (0, 0, 0, 0, 1) mediante la matriz consultada, mientras que el muestreo desde la esquina superior derecha de la imagen se puede realizar mediante la transformación (1, 1, 0, 1).

El objeto de textura usa el destino de textura GL_TEXTURE_EXTERNAL_OES, que se define mediante la extensión openGL ES de GL_OES_EGL_image_external . Esto limita cómo se puede usar la textura. Cada vez que la textura está enlazada, debe enlazarse al destino GL_TEXTURE_EXTERNAL_OES en lugar del destino GL_TEXTURE_2D. Además, cualquier sombreador de OpenGL ES 2.0 que muestre de la textura debe declarar su uso de esta extensión mediante, por ejemplo, una directiva "#extension GL_OES_EGL_image_external : require". Estos sombreadores también deben tener acceso a la textura mediante el tipo samplerExternalOES GLSL.

Los objetos SurfaceTexture se pueden crear en cualquier subproceso. #updateTexImage solo se puede llamar a en el subproceso con el contexto de OpenGL ES que contiene el objeto de textura. La devolución de llamada disponible para fotogramas se llama en un subproceso arbitrario, por lo que, a menos que no #updateTexImage se llame a especial cuidado directamente desde la devolución de llamada.

Documentación de Java para android.graphics.SurfaceTexture.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

SurfaceTexture(Boolean)

Construye una nueva SurfaceTexture para transmitir imágenes a una textura de OpenGL determinada.

SurfaceTexture(Int32, Boolean)

Construye una nueva SurfaceTexture para transmitir imágenes a una textura de OpenGL determinada.

SurfaceTexture(Int32)

Construye una nueva SurfaceTexture para transmitir imágenes a una textura de OpenGL determinada.

SurfaceTexture(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
DataSpace

Recupere el espacio de datos asociado a la imagen de textura.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
IsReleased

Devuelve true si se lanzó SurfaceTexture.

JniIdentityHashCode

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
JniPeerMembers

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

PeerReference

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Timestamp

Recupere la marca de tiempo asociada a la imagen de textura establecida por la llamada más reciente a #updateTexImage.

Métodos

AttachToGLContext(Int32)

Adjunte SurfaceTexture al contexto de OpenGL ES que está activo en el subproceso que realiza la llamada.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
DetachFromGLContext()

Desasocie SurfaceTexture del contexto de OpenGL ES que posee el objeto de textura openGL ES.

Dispose()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
Dispose(Boolean)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
GetTransformMatrix(Single[])

Recupere la matriz de transformación de coordenadas de textura 4x4 asociada con la imagen de textura establecida por la llamada más reciente a #updateTexImage.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Release()

release() libera todos los búferes y coloca SurfaceTexture en el estado "abandonado".

ReleaseTexImage()

Libera el contenido de la textura.

SetDefaultBufferSize(Int32, Int32)

Establezca el tamaño predeterminado de los búferes de imágenes.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

Registre una devolución de llamada que se invocará cuando un nuevo marco de imagen esté disponible para SurfaceTexture.

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener)

Registre una devolución de llamada que se invocará cuando un nuevo marco de imagen esté disponible para SurfaceTexture.

ToArray<T>()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
UpdateTexImage()

Actualice la imagen de textura al marco más reciente de la secuencia de imágenes.

Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Eventos

FrameAvailable

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.Finalized()

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

GetJniTypeName(IJavaPeerable)

Captura los fotogramas de una secuencia de imágenes como una textura de OpenGL ES.

Se aplica a