有没有办法让后台线程使用OpenGL ES纹理访问相机预览?
在用户可见的视图中使用OpenGL ES访问相机预览是完全可以的。我需要在OpenGL上下文中的后台线程中访问相机框架。在通过着色器转换后使用glReadPixels下载结果数据,并在CPU中进行进一步处理。用户视图不应受到影响。
答案 0 :(得分:2)
在后台逐帧处理的支持方式是使用onPreviewFrame()
回调。无论你做什么,都不会影响用户预览,无论是表面还是纹理。
如果你希望onPreviewFrame()
回调到达后台线程,你应该openCamera()
在这个线程上,并且它必须是一个Handler线程(即拥有它的Looper),参见 Best use of HandlerThread over other similar classes