我指的是演示应用程序格拉菲卡,在该应用程序中,CameraCaptureActivity记录一个视频,同时显示应用效果的实时预览。
在CameraCaptureActivity中录制时,任何应用于来自相机的帧的效果都会被执行两次。
一次用于预览,一次在将视频保存到文件中。
由于预览的同一帧被保存到文件中,如果只完成一次,它将节省大量的处理。
框架的渲染直接发生在两个表面上,一个是GLSurfaceView (用于预览),另一个是MediaCodec (保存部分)。
是否有一种只呈现一次OpenGL效果的方法?
如果我能把一个表面的内容复制到另一个表面,那就太好了。
有办法这样做吗?
发布于 2015-05-28 15:47:27
是的:您可以将输出呈现给FBO,然后将输出刷新两次,一次用于显示,一次用于记录。
Grafika的"record应用程序“活动展示了三种不同的解决问题的方法(其中一种方法仅适用于GLES 3.0+)。doFrame()方法完成了这项工作;绘制-一次-空白-两次方法目前是这里。
https://stackoverflow.com/questions/30440935
复制相似问题