【发布时间】:2015-05-14 17:54:09
【问题描述】:
有没有办法让后台线程使用 OpenGL ES 纹理访问相机预览?
在用户可见的视图中使用 OpenGL ES 访问相机预览是非常好的。我需要在 OpenGL 上下文中的后台线程中访问相机帧。经过着色器转换后,使用 glReadPixels 下载结果数据,并在 CPU 中进行进一步处理。用户视图不应受到影响。
【问题讨论】:
标签: android multithreading opengl-es camera
有没有办法让后台线程使用 OpenGL ES 纹理访问相机预览?
在用户可见的视图中使用 OpenGL ES 访问相机预览是非常好的。我需要在 OpenGL 上下文中的后台线程中访问相机帧。经过着色器转换后,使用 glReadPixels 下载结果数据,并在 CPU 中进行进一步处理。用户视图不应受到影响。
【问题讨论】:
标签: android multithreading opengl-es camera
支持在后台逐帧处理的方法是使用onPreviewFrame() 回调。无论您在那里做什么都不会影响用户预览,无论是表面还是纹理。
如果你想让onPreviewFrame()回调到达后台线程,你应该在这个线程上openCamera(),并且它必须是一个Handler线程(即有它的Looper),见Best use of HandlerThread over other similar classes
【讨论】: