다음을 통해 공유


SurfaceTexture 클래스

정의

이미지 스트림의 프레임을 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
상속
SurfaceTexture
특성

설명

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

이미지 스트림은 카메라 미리 보기 또는 비디오 디코딩에서 올 수 있습니다. SurfaceTexture에서 만든 API android.view.Surface 는 , android.media.MediaCodecandroid.media.MediaPlayerandroid.renderscript.Allocation API의 android.hardware.camera2출력 대상으로 사용할 수 있습니다. #updateTexImage 호출되면 SurfaceTexture를 만들 때 지정된 질감 개체의 내용이 이미지 스트림의 최신 이미지를 포함하도록 업데이트됩니다. 이로 인해 스트림의 일부 프레임을 건너뛸 수 있습니다.

이전 android.hardware.Camera API의 출력 대상을 지정할 때 SurfaceHolder 대신 SurfaceTexture를 사용할 수도 있습니다. 이렇게 하면 이미지 스트림의 모든 프레임이 디바이스의 디스플레이가 아닌 SurfaceTexture 개체로 전송됩니다.

텍스처에서 샘플링하는 경우 먼저 을 통해 #getTransformMatrix(float[])쿼리된 행렬을 사용하여 텍스처 좌표를 변환해야 합니다. 변환 행렬은 호출될 때마다 #updateTexImage 변경될 수 있으므로 텍스처 이미지가 업데이트될 때마다 다시 쿼리해야 합니다. 이 행렬은 포괄 간격 [0, 1]에 있는 폼의 기존 2D OpenGL ES 텍스처 좌표 열 벡터(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 되지 않는 한 콜백에서 직접 호출해서는 안됩니다.

에 대한 android.graphics.SurfaceTextureJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

SurfaceTexture(Boolean)

이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다.

SurfaceTexture(Int32)

이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다.

SurfaceTexture(Int32, Boolean)

이미지를 지정된 OpenGL 텍스처로 스트리밍하는 새 SurfaceTexture를 생성합니다.

SurfaceTexture(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
DataSpace

텍스처 이미지와 연결된 데이터 영역을 검색합니다.

Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
IsReleased

SurfaceTexture가 해제되었는지를 반환 true 합니다.

JniIdentityHashCode

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

(다음에서 상속됨 Object)
JniPeerMembers

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

PeerReference

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

Timestamp

가장 최근 호출에 의해 설정된 텍스처 이미지와 연결된 타임스탬프를 검색합니다 #updateTexImage.

메서드

AttachToGLContext(Int32)

SurfaceTexture를 호출 스레드의 현재 OpenGL ES 컨텍스트에 연결합니다.

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 텍스처 좌표 변환 행렬을 검색합니다 #updateTexImage.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Release()

release() 는 모든 버퍼를 해제하고 SurfaceTexture를 '중단됨' 상태로 전환합니다.

ReleaseTexImage()

텍스처 콘텐츠를 해제합니다.

SetDefaultBufferSize(Int32, Int32)

이미지 버퍼의 기본 크기를 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener)

SurfaceTexture에서 새 이미지 프레임을 사용할 수 있게 되면 호출할 콜백을 등록합니다.

SetOnFrameAvailableListener(SurfaceTexture+IOnFrameAvailableListener, Handler)

SurfaceTexture에서 새 이미지 프레임을 사용할 수 있게 되면 호출할 콜백을 등록합니다.

ToArray<T>()

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

이미지 스트림의 프레임을 OpenGL ES 텍스처로 캡처합니다.

(다음에서 상속됨 Object)
UpdateTexImage()

이미지 스트림에서 가장 최근 프레임으로 텍스처 이미지를 업데이트합니다.

Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 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 텍스처로 캡처합니다.

적용 대상