背景OpenGL ES线程与Android上的相机预览

时间:2015-05-14 17:54:09

标签: android multithreading opengl-es camera

有没有办法让后台线程使用OpenGL ES纹理访问相机预览?

在用户可见的视图中使用OpenGL ES访问相机预览是完全可以的。我需要在OpenGL上下文中的后台线程中访问相机框架。在通过着色器转换后使用glReadPixels下载结果数据,并在CPU中进行进一步处理。用户视图不应受到影响。

1 个答案:

答案 0 :(得分:2)

在后台逐帧处理的支持方式是使用onPreviewFrame()回调。无论你做什么,都不会影响用户预览,无论是表面还是纹理。

如果你希望onPreviewFrame()回调到达后台线程,你应该openCamera()在这个线程上,并且它必须是一个Handler线程(即拥有它的Looper),参见 Best use of HandlerThread over other similar classes