可以在附加到相机的SurfaceTexture上绘制?

时间:2011-12-20 21:14:52

标签: android android-camera

我想在通过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

1 个答案:

答案 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。但相反的是正确的方法。