"새로운 카메라 프레임 워크"Camera2의 카메라 스트림을 OpenGL 텍스처로 가져 오려고하지만 이미지가 검은 색으로 유지됩니다.OpenGL 텍스처로 Xamarin Android Camera2-Preview
저는 Xamarin (하지만 Java는 매우 비슷해야합니다)과 함께 작업 중이며 기본 렌더링에 NDK를 사용하고 있습니다. 그래서 OpenGL-ES 컨텍스트를 만든 GLSurfaceView를 얻었고 C++에서.
다음 샘플을 체크 아웃하지 않았습니다. https://github.com/googlesamples/android-Camera2Basic 그리고 거기에서 계속하고 싶습니다.
대신 TextureView의 SurfaceTexture를 CaptureRequestBuilder에 추가합니다. 새 텍스처 핸들로 새 SurfaceTexture를 만들었습니다.
// C++
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &m_TextureHandle);
glBindTexture(GL_TEXTURE_EXTERNAL_OES, m_TextureHandle);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glBindTexture(GL_TEXTURE_EXTERNAL_OES, 0);
// C# (or Java)
_SurfaceTexture = new SurfaceTexture(m_TextureHandle);
_SurfaceTexture.FrameAvailable += SurfaceTextureOnFrameAvailable;
수신 프레임의 마지막 라인을 등록합니다. 여기 난 그냥 내 렌더링 스레드에 파견 전화 :
_SurfaceTexture.UpdateTexImage();
내가 중요한 단계를 실종? 나는 또한 같은 결과로 비추천 된 카메라 API를 사용하려고 시도했다.
감사 카이
는
예, 결국 TextureView의 표면 대신 추가했기 때문에 결국 컨트롤이 필요하지 않습니다. –
GLSurfaceView의 이벤트 대기열에 UpdateTexImage 호출을 푸시하는 이벤트도 발생합니다.이 호출도 완료됩니다. –