Lingua

SurfaceTexture Classe

Definizione

Acquisisce fotogrammi da un flusso di immagini come trama 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
Ereditarietà
SurfaceTexture
Attributi

Commenti

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

Il flusso di immagini può provenire dall'anteprima della fotocamera o dalla decodifica video. Un android.view.Surface oggetto creato da surfaceTexture può essere usato come destinazione di output per le android.hardware.camera2API , android.media.MediaCodecandroid.media.MediaPlayer, e android.renderscript.Allocation . Quando #updateTexImage viene chiamato, il contenuto dell'oggetto trama specificato quando è stato creato SurfaceTexture viene aggiornato in modo da contenere l'immagine più recente dal flusso di immagini. In questo modo è possibile che alcuni fotogrammi del flusso vengano ignorati.

È anche possibile usare SurfaceTexture al posto di un SurfaceHolder quando si specifica la destinazione di output dell'API precedente android.hardware.Camera . In questo modo tutti i fotogrammi del flusso di immagini verranno inviati all'oggetto SurfaceTexture anziché alla visualizzazione del dispositivo.

Un modello tipico consiste nell'usare SurfaceTexture per eseguire il rendering dei fotogrammi in un TextureViewoggetto ; tuttavia, un oggetto TextureView non è necessario per l'uso dell'oggetto trama. L'oggetto trama può essere usato come parte di uno shader OpenGL ES.

Quando si esegue il campionamento dalla trama, è necessario prima trasformare le coordinate della trama usando la matrice sottoposta a query tramite #getTransformMatrix(float[]). La matrice di trasformazione può cambiare ogni volta #updateTexImage che viene chiamata, quindi deve essere sottoposto nuovamente a query ogni volta che l'immagine della trama viene aggiornata. Questa matrice trasforma i vettori di colonna della colonna delle coordinate della trama 2D OpenGL ES tradizionali del form (s, t, 0, 1) dove s e t si trovano nell'intervallo inclusivo [0, 1] alla posizione di campionamento corretta nella trama trasmessa. Questa trasformazione compensa tutte le proprietà dell'origine del flusso di immagini che ne causano la visualizzazione diversa da una trama OpenGL ES tradizionale. Ad esempio, il campionamento dall'angolo inferiore sinistro dell'immagine può essere eseguito trasformando il vettore di colonna (0, 0, 0, 1) usando la matrice di query, mentre il campionamento dall'angolo superiore destro dell'immagine può essere eseguito trasformando (1, 1, 0, 1).

L'oggetto trama usa la destinazione GL_TEXTURE_EXTERNAL_OES trama, definita dall'estensione OpenGL ES GL_OES_EGL_image_external. Questo limita il modo in cui può essere usata la trama. Ogni volta che la trama è associata, deve essere associata alla destinazione GL_TEXTURE_EXTERNAL_OES anziché alla destinazione GL_TEXTURE_2D. Inoltre, qualsiasi shader OpenGL ES 2.0 che campioni dalla trama deve dichiarare l'uso di questa estensione usando, ad esempio, una direttiva "#extension GL_OES_EGL_image_external : require". Tali shader devono anche accedere alla trama usando il tipo samplerExternalOES GLSL sampler.

Gli oggetti SurfaceTexture possono essere creati in qualsiasi thread. #updateTexImage può essere chiamato solo sul thread con il contesto OpenGL ES che contiene l'oggetto trama. Il callback disponibile per fotogrammi viene chiamato su un thread arbitrario, quindi, a meno che non venga eseguita #updateTexImage una particolare attenzione direttamente dal callback.

per android.graphics.SurfaceTexture.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
SurfaceTexture(Boolean)

Costruisci una nuova surfaceTexture per trasmettere le immagini a una determinata trama OpenGL.

SurfaceTexture(Int32, Boolean)

Costruisci una nuova surfaceTexture per trasmettere le immagini a una determinata trama OpenGL.

SurfaceTexture(Int32)

Costruisci una nuova surfaceTexture per trasmettere le immagini a una determinata trama OpenGL.

SurfaceTexture(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
DataSpace

Recuperare lo spazio dati associato all'immagine trama impostata dalla chiamata più recente a #updateTexImage.

Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
IsReleased

Restituisce true se SurfaceTexture è stato rilasciato.

JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniManagedPeerState

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
JniPeerMembers

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Timestamp

Recuperare il timestamp associato all'immagine trama impostata dalla chiamata più recente a #updateTexImage.

Metodi

Nome Descrizione
AttachToGLContext(Int32)

Collegare SurfaceTexture al contesto OpenGL ES corrente nel thread chiamante.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
DetachFromGLContext()

Scollegare SurfaceTexture dal contesto OpenGL ES proprietario dell'oggetto trama OpenGL ES.

Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
DisposeUnlessReferenced()

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
Equals(Object)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
GetTransformMatrix(Single[])

Recuperare la matrice di trasformazione della coordinata trama 4x4 associata all'immagine trama impostata dalla chiamata più recente a #updateTexImage.

JavaFinalize()
Obsoleti.

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
Release()

release() libera tutti i buffer e inserisce SurfaceTexture nello stato "abbandonato".

ReleaseTexImage()

Rilascia il contenuto della trama.

SetDefaultBufferSize(Int32, Int32)

Impostare le dimensioni predefinite dei buffer di immagini.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

Registra un callback da richiamare quando un nuovo frame di immagine diventa disponibile per SurfaceTexture.

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener)

Registra un callback da richiamare quando un nuovo frame di immagine diventa disponibile per SurfaceTexture.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
UpdateTexImage()

Aggiornare l'immagine della trama al fotogramma più recente dal flusso di immagini.

Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Eventi

Nome Descrizione
FrameAvailable

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
IJavaPeerable.Finalized()

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

(Ereditato da JavaObject)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Acquisisce fotogrammi da un flusso di immagini come trama OpenGL ES.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a