android.view.Surface
我需要在 Android 本机 C++ 代码中将解码的视频帧绘制到一个对象中。
我了解执行此操作的常用方法是实现GLSurfaceView.Renderer
接口并从onDrawFrame()
. 但我不能使用它,我需要将 Surface 对象传递给本机方法并从那里处理它。
我计划使用 OpenGL ES API 来完成所有渲染工作,因为它是跨平台的。但我不知道 Surface 对象是从哪里来的。
我已经看到了几个使用的例子ANativeWindow_fromSurface()
。如果我没有被迫使用 OpenGL,我想我可以这样做。
那么,我在本机代码中在哪里“设置”我的 Surface 对象,所以我可以很好地渲染我的场景帧?
编辑:好的,我想我只是不知道EGL 标准,这似乎是我在本案中所需要的。
但是,我仍在寻找一种方法来将android.view.Surface
对象“映射”或“转换”为由 EGL 上下文处理的任何结构,我假设它是EGLNativeWindowType
,而不需要访问任何 Android 特定的 API。
提前致谢。