跳转到主要内容
本文档对应 SDK 2.0.0。授权见 授权与许可。美妆 / 美型枚举见 参数枚举。

添加 SDK 依赖

方法 A:CocoaPods(推荐)

Xcode 15+ 编译错误使用 Xcode 15 或更高版本时,编译可能出现 Sandbox: rsync.samba deny(1)。这是 User Script Sandboxing 导致的。解决方法:
  1. 在 Xcode 中选择 Project。
  2. 打开 Build Settings。
  3. 搜索 ENABLE_USER_SCRIPT_SANDBOXING。
  4. 将值从 Yes 改为 No。

方法 B:手动集成 Framework

前往 下载 获取 SDK,将 Facebetter.framework 拷入工程,并按 嵌入动态库 将 Embed 设为 Embed & Sign。
Xcode 链接库

权限

使用在线 appId / appKey 的沙盒 Mac 应用必须允许出站网络:
macOS 网络权限
相机(可选):在 Info.plist 中添加 NSCameraUsageDescription。

导入头文件

AppKit 类型(NSImage)需要 #import <AppKit/AppKit.h>(macOS 上通常已由引擎头文件或前缀头引入)。

日志配置

默认关闭日志。必须在创建引擎之前调用 setLogConfig:。

创建引擎

绑定 macOS Bundle ID,然后传入 licenseToken 或 appId + appKey。见 获取 AppID 和 AppKey 与 授权与许可。 优先级: licenseToken 非空(许可证 token、{token} JSON 或 .lic 内容)时本地校验;否则用 appId + appKey 请求 /facebetter/v2/auth。
createEngineWithConfig: 返回的是实例,不是单例。没有 Bundle ID 的命令行工具请在控制台绑定进程名。

美肤

强度一般为 [0.0, 1.0]。风格枚举见 参数枚举。

美型

setReshape:intensity: 范围为 [-1.0, 1.0]。0 关闭。参数:FBReshape_FaceThin … FBReshape_BrowThickness(0–25)。含义见 参数枚举。

美体

setBodyReshape:intensity: 范围为 [0.0, 1.0]。0 关闭。先用 addResourcePack: 登记 resource_body.fbd。参数:FBBodyReshape_BodySlim … FBBodyReshape_TorsoLong(0–8)。见 参数枚举 与 可选资源包。

美妆

强度、形状、色号分开设置。完整预设见 参数枚举。

虚拟背景

色键只替换遮罩。填充仍是模糊或替换图。

滤镜与贴纸

传入 .fbd 文件路径或内存字节。没有按 ID 注册的接口。
3D 贴纸需要可选包 resource_3d.fbd(不在 framework 内)。见 可选资源包:

回调与统计

处理图像

FBImageFrame 支持 I420、NV12、NV21、RGB、RGBA、BGR、BGRA、文件、纹理和 NSImage。
先设 type,再调用 processImage:(没有额外的模式参数)。输出格式与输入一致。
FBFrameTypeVideo 用于实时流,FBFrameTypeImage 用于静图和 NSImage。
YUV 平面:dataY、dataU、dataV、dataUV 及对应 stride。

外部纹理

在 OpenGL 线程创建引擎,并设置 externalContext = YES。输入输出纹理必须共享该上下文。macOS 为桌面 OpenGL 3.2 Core(NSOpenGLContext / CGL),不是 OpenGL ES。
接入 TRTC / 声网 / LiveKit:见 第三方对接。

生命周期

用 NSViewController 的 strong 引用持有引擎。视图消失或窗口最小化时停止采集。会话结束时将引擎置 nil。

相关文档