Skip to main content
本文档说明如何在 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.swiftapplication(_:didFinishLaunchingWithOptions:) 中注册:
必须在 GeneratedPluginRegistrant.register(with:) 之后调用,确保 FaceBetter 插件已初始化。

2.4 Bridging Header

如果项目使用 Swift,需要在 Bridging Header 中导入 ObjC 头文件:

第三步:Android 原生层集成

3.1 添加依赖

在 Android 的 app/build.gradle 中添加:

3.2 实现美颜处理器

创建 FBBeautyProcesser.kt

3.3 注册到 TRTC

MainActivity.kt 中注册:

第四步:Flutter 层开启自定义视频处理

动态调整美颜参数

在 TRTC 通话过程中,可以随时调整美颜参数:
参数变更立即生效,下一帧视频就会使用新参数处理。

资源释放

退出 TRTC 房间后释放引擎:

注意事项

  1. GL 线程onProcessVideoFrame 在 GL 线程中调用,FaceBetter 引擎的 processImage 是线程安全的。
  2. 初始化时机:必须在 enableCustomVideoProcess(true) 之前完成 FBBeautyEffectEngine.init()
  3. 单例模式:FaceBetter 引擎是单例,整个 App 生命周期只创建一次。
  4. 纹理格式:FaceBetter 使用 OpenGL ES 2D 纹理,与 TRTC 的纹理格式完全匹配。

相关文档