Skip to content

Flutter API 参考

日志相关

FBLogLevel

日志级别枚举。

dart
enum FBLogLevel {
  trace,
  debug,
  info,
  warn,
  error,
  critical,
}

FBLogConfig

日志配置类。

字段类型默认值说明
consoleEnabledboolfalse是否启用控制台日志
fileEnabledboolfalse是否启用文件日志
levelFBLogLevelinfo日志级别
fileNameString''日志文件路径

引擎相关

FBEngineConfig

引擎配置类。

字段类型说明
appIdString应用 ID(可选,如果提供了 licenseJson 则不需要)
appKeyString应用密钥(可选,如果提供了 licenseJson 则不需要)
licenseJsonString?授权数据 JSON 字符串(可选,优先级高于 appId/appKey)
externalContextbool是否使用外部 OpenGL 上下文(默认 false

FBBeautyEffectEngine

美颜引擎单例类。

静态方法

方法说明
Future<String> getSdkVersion()获取 SDK 版本号
Future<void> setLogConfig(FBLogConfig config)设置日志配置(需在 init 之前调用)
Future<void> init(FBEngineConfig config)初始化引擎
FBBeautyEffectEngine get sharedInstance获取单例实例

参数设置

方法说明
Future<int> setBasicParam(FBBasicParam param, double value)设置基础美颜参数 [0.0, 1.0]
Future<int> setReshapeParam(FBReshapeParam param, double value)设置面部重塑参数 [0.0, 1.0]
Future<int> setMakeupParam(FBMakeupParam param, double value)设置美妆参数 [0.0, 1.0]
Future<int> setLipstickStyle(FBLipstickStyle style)设置口红风格
Future<int> setBlushStyle(FBBlushStyle style)设置腮红风格
Future<int> setSkinOnlyBeauty(bool enabled)美颜仅作用于皮肤区域
Future<int> setChromaKeyParam(FBChromaKeyParam param, double value)设置色度键参数
Future<int> setVirtualBackground(FBBackgroundMode mode, {FBImageFrame? backgroundImage})设置虚拟背景

滤镜与贴纸

方法说明
Future<int> setFilter(String filterId)设置滤镜
Future<int> setFilterIntensity(double intensity)设置滤镜强度 [0.0, 1.0]
Future<int> setSticker(String stickerId)设置贴纸(空字符串清除)
Future<int> registerFilter(String filterId, String fbdFilePath)从文件注册滤镜
Future<int> registerFilterData(String filterId, Uint8List fbdData)从内存注册滤镜
Future<int> registerSticker(String stickerId, String fbdFilePath)从文件注册贴纸
Future<int> registerStickerData(String stickerId, Uint8List fbdData)从内存注册贴纸
Future<int> unregisterFilter(String filterId)卸载滤镜
Future<int> unregisterAllFilters()卸载所有滤镜
Future<int> unregisterSticker(String stickerId)卸载贴纸
Future<int> unregisterAllStickers()卸载所有贴纸
Future<List<String>> getRegisteredFilters()获取已注册滤镜列表
Future<List<String>> getRegisteredStickers()获取已注册贴纸列表

图像处理

方法说明
Future<FBImageFrame?> processImage(FBImageFrame inputFrame)处理图像帧
Future<int> processImageFile(String inputPath, String outputPath)处理图片文件

回调

属性类型说明
onFaceLandmarksStream<FBFaceDetectionResult>人脸关键点检测流
onEngineEventStream<FBEngineEvent>引擎事件流

生命周期

方法说明
Future<void> release()释放引擎资源

返回值说明:

  • int 返回值:0 表示成功,-1 表示引擎未初始化
  • processImage 返回 null 表示处理失败

美颜参数枚举

FBBasicParam

枚举值说明
smoothing0磨皮
sharpening1锐化
whitening2美白
rosiness3红润

FBReshapeParam

枚举值说明
faceThin0瘦脸
faceVShape1V脸
faceNarrow2窄脸
faceShort3短脸
cheekbone4颧骨
jawbone5下颌骨
chin6下巴
noseSlim7瘦鼻梁
eyeSize8大眼
eyeDistance9眼距

FBMakeupParam

枚举值说明
lipstick0口红
blush1腮红

FBLipstickStyle

枚举值说明
rouge0玫瑰红
coral1珊瑚橙
pink2粉色(默认)

FBBlushStyle

枚举值说明
classic0经典(默认)
peach1蜜桃
rose2玫瑰

FBChromaKeyParam

枚举值说明
keyColor0键色(0=绿色, 1=蓝色, 2=红色)
similarity1相似度 [0.0, 1.0]
smoothness2平滑度 [0.0, 1.0]
desaturation3去饱和度 [0.0, 1.0]

FBBackgroundMode

枚举值说明
none0无背景
blur1模糊背景
image2图片背景

图像相关

FBImageFrame

图像帧类,用于封装图像数据。

构造函数

dart
// 单平面格式(RGBA/BGRA/RGB/BGR)
FBImageFrame({
  required int width,
  required int height,
  required int stride,
  Uint8List? data,
  required FBImageFormat format,
  FBFrameType frameType = FBFrameType.video,
})

// I420 格式
FBImageFrame.fromI420({...})

// NV12 格式
FBImageFrame.fromNV12({...})

// NV21 格式
FBImageFrame.fromNV21({...})

属性

字段类型说明
widthint宽度(像素)
heightint高度(像素)
strideint行步长(字节)
dataUint8List?像素数据(单平面格式)
formatFBImageFormat像素格式
frameTypeFBFrameType帧类型(image/video)
yuvDataFBYUVData?YUV 多平面数据

FBImageFormat

枚举值说明
i4200YUV 4:2:0 planar
nv121YUV 4:2:0 semi-planar
nv212YUV 4:2:0 semi-planar(Android 默认)
bgra3BGRA 32bpp
rgba4RGBA 32bpp
bgr5BGR 24bpp
rgb6RGB 24bpp

FBFrameType

枚举值说明
image0单帧图片处理(质量更好)
video1连续视频流处理(性能更高)

回调相关

FBFaceDetectionResult

字段类型说明
rectFBRect人脸边界框
keyPointsList<FBPoint2d>106 个人脸关键点
visibilityList<double>关键点可见度
faceIdint人脸 ID
scoredouble检测置信度
pitchdouble俯仰角
rolldouble翻滚角
yawdouble偏航角

FBEngineEventCode

枚举值说明
licenseValidationSuccess0License 验证成功
licenseValidationFailed1License 验证失败
engineInitializationComplete100引擎初始化完成
engineInitializationFailed101引擎初始化失败

原生层访问

供 TRTC 等推流 SDK 在原生层获取引擎实例。

iOS (Swift)

swift
let engine = FacebetterPlugin.sharedInstance().engine

Android (Kotlin)

kotlin
val engine = FacebetterPlugin.sharedInstance?.getEngine()