本文档说明如何在 TRTC Flutter 项目中集成 FaceBetter 美颜 SDK。
架构概述
Flutter 层负责初始化引擎和设置美颜参数,原生层负责在 TRTC 的视频帧回调中处理纹理。
前置条件
- 已集成 TRTC Flutter SDK(
tencent_trtc_cloud)
- 已添加
facebetter_flutter 依赖
- FaceBetter SDK 有效授权(appId / appKey)
第一步:Flutter 层初始化
在进入 TRTC 房间之前初始化 FaceBetter 引擎并设置美颜参数:
第二步:iOS 原生层集成
2.1 添加依赖
在 iOS 的 Podfile 中添加 TRTC 美颜抽象层:
2.2 实现美颜处理器
创建 FBBeautyProcesser.swift:
2.3 注册到 TRTC
在 AppDelegate.swift 的 application(_:didFinishLaunchingWithOptions:) 中注册:
必须在 GeneratedPluginRegistrant.register(with:) 之后调用,确保 FaceBetter 插件已初始化。
如果项目使用 Swift,需要在 Bridging Header 中导入 ObjC 头文件:
第三步:Android 原生层集成
3.1 添加依赖
在 Android 的 app/build.gradle 中添加:
3.2 实现美颜处理器
创建 FBBeautyProcesser.kt:
3.3 注册到 TRTC
在 MainActivity.kt 中注册:
第四步:Flutter 层开启自定义视频处理
动态调整美颜参数
在 TRTC 通话过程中,可以随时调整美颜参数:
参数变更立即生效,下一帧视频就会使用新参数处理。
资源释放
退出 TRTC 房间后释放引擎:
注意事项
-
GL 线程:
onProcessVideoFrame 在 GL 线程中调用,FaceBetter 引擎的 processImage 是线程安全的。
-
初始化时机:必须在
enableCustomVideoProcess(true) 之前完成 FBBeautyEffectEngine.init()。
-
单例模式:FaceBetter 引擎是单例,整个 App 生命周期只创建一次。
-
纹理格式:FaceBetter 使用 OpenGL ES 2D 纹理,与 TRTC 的纹理格式完全匹配。
相关文档