我想在通过SurfaceTexture
连接到Camera
的{{1}}之上绘图。我可以通过setPreviewTexture
获得SurfaceTexture
。但是,如果我只是尝试使用SurfaceTextureListener
&由于表面已连接,eglCreateWindowSurface
失败。
1)是否可以在这个表面上画画?或者将它绑定到相机使得无法做到这一点。
2)如果不可能。表面可以快速使用(或复制)到OpenGL纹理并在单独的表面中使用吗?如果是这样的话?
3)如果没有,那么从SurfaceTexture和OpenGL中获取相机预览的最快方法是什么?
另请注意,让我失去关于已经连接的代码的灵感来自Romain Guy的帖子:http://groups.google.com/group/android-developers/browse_thread/thread/539457146a401cf1
答案 0 :(得分:4)
是的,这是可能的,实际上是SurfaceTexture的重点。问题是我在向后思考它们。为了让他们工作,您需要:
1) Create a texture through OpenGL.
2) Pass this texture to the constructor of new SurfaceTexture.
3) Give this new SurfaceTexture to the camera.
4) Make sure you are using OES_External (see documentation for
details).
我最大的问题是试图弄清楚如何反过来。也就是说,创建一个SurfaceTexture并将其传递给OpenGL。但相反的是正确的方法。