Flutter FlutterRenderer
FlutterRenderer 是 Flutter 引擎在 Android 下的 Embedder 中的类。它代表了FlutterEngine的渲染职责。
FlutterRenderer与提供的RenderSurface一起工作,将 Flutter 的像素绘制到 Android 的View层次结构中。这里的RenderSurface提供了 Android 的Surface,FlutterRenderer在这个Surface上进行绘制。
FlutterRenderer 管理用于渲染的纹理,并通过JNI将一些Java调用转发到原生的Flutter代码。这意味着FlutterRenderer是 Java 代码和原生 Flutter 代码之间的桥梁。
FlutterSurfaceView和FlutterTextureView是RenderSurface的实现。这意味着FlutterRenderer可以与这两种类型的视图一起工作,将Flutter的像素绘制到这些视图上。
渲染管理
在介绍中提到,Android 侧提供 RenderSurface,FlutterRenderer 向其上进行渲染,即渲染管理,这是 FlutterRenderer 的最核心功能。
isDisplayingFlutterUi 状态作为“当前 Flutter 是否正在渲染”的唯一事实。
启停方法:
- 开始渲染:startRenderingToSurface()。
- 停止渲染:stopRenderingToSurface()。
纹理管理
- createSurfaceTexture:创建一个由 Flutter Engine 管理的纹理,可在 Flutter 中使用
- registerSurfaceTexture:注册纹理,由 Flutter Engine 管理的纹理,可在 Flutter 中使用
两个方法返回值类型均为 SurfaceTextureRegistryEntry 这是 FlutterRenderer 的一层封装。
关于外接纹理基于,基于这里的方法实现。参考资料:
- Flutter 使用Texture实现Android渲染视频_flutter textureview-CSDN博客
- Flutter 外接纹理 - 掘金:该文提供了一种,将相机 Preview 与纹理对接的实现
- 谈一谈Flutter外接纹理-CSDN博客
网络资源
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!
