SDK 2.0.0。Dart 只设置美颜参数。每一帧视频都留在原生 GL 线程,通过
FacebetterPlugin.processTexture 处理。processFile / processImageBytes / processImageFile / processImageToUiImage。那些接口需要 externalContext: false,并且要用另一台引擎。
前置条件
- 工程里已接入
tencent_trtc_cloud(或原生 TRTC) facebetter_flutter: ^2.0.0- 有效的
appId/appKey或licenseToken— 授权与许可证
1. 在 Dart 里创建引擎
必须在打开自定义前处理之前创建。externalContext 默认为 true,接 TRTC 必须保持 true。
2. iOS — 在 onProcessVideoFrame 里喂纹理
tencent_trtc_cloud 的 ITXCustomBeautyProcesser,像素格式仍选 Texture2D / Texture,在 onProcessVideoFrame 里调用同一个 processTexture。工厂注册必须在 GeneratedPluginRegistrant.register(with:) 之后。
3. Android — 同样的回调,Kotlin
processTexture 必须在当前 GL 线程调用,不要切到 UI isolate。
4. 销毁
enableCustomVideoProcess(false)(或先退房)engine.dispose()
静图 vs 实时视频
不要做的事
- 不要从 Dart 每帧传像素或 texture id — Flutter 与 TRTC 的 GL 上下文不能和 Dart 共用。
- 不要在非 GL 线程调用
processTexture。 - 不要把
FBEngine当成进程级单例。用FBEngine.create创建,通话结束时dispose()。

