添加 SDK 依赖
方法 A:Maven 在线集成(推荐)
在项目根目录的build.gradle 或 settings.gradle 中配置仓库:
build.gradle:
gradle/libs.versions.toml):
方法 B:本地 AAR
前往 下载 获取 SDK,将facebetter.aar 放到 libs/,然后:
权限配置
AndroidManifest.xml:
API 23+ 需在运行时申请
CAMERA。
导入类
日志配置
默认关闭日志。必须在new BeautyEffectEngine(...) 之前 开启。
创建引擎
凭证获取见 订阅服务。鉴权细节见 授权与许可。licenseToken 非空时使用该 token(许可证 token / {token} JSON / 离线 .lic)。否则用 appId + appKey 请求 /facebetter/v2/auth。
null;配置无效会抛异常。异步初始化结果通过 EngineEventCode.INITIALIZATION_COMPLETE / INITIALIZATION_FAILED 回调通知。
美颜
强度[0.0, 1.0]。0 表示关闭。成功返回 ErrorCode.SUCCESS(0)。
整形
范围[-1.0, 1.0]。0 为关闭。
FACE_THIN … BROW_THICKNESS)及正负方向见 参数枚举。
美体
范围[0.0, 1.0]。0 关闭。先用 addResourcePack 登记 resource_body.fbd(不在 AAR 内)。见 参数枚举 与 可选资源包。
美妆
先设强度,再设风格和/或颜色。虚拟背景与色度键
模糊(0 会清除)、静态图,或色度键遮罩 + 填充。
clearChromaKey() 会恢复肖像分割,不会去掉当前的模糊/图片填充。
滤镜与贴纸
从文件路径或assets 加载 .fbd。无需注册步骤。
resource_3d.fbd(不在 AAR 内)。见 可选资源包。从应用 assets 登记后再设置 3D 贴纸 .fbd:
回调与统计
处理图像
将ImageFrame.type 设为 FrameType.IMAGE(静图)或 FrameType.VIDEO(相机 / 直播)。processImage 只接收帧,没有额外的模式参数。
Bitmap:
getData() / 平面访问器读像素,或先转换:
相机管线
Camera2YUV_420_888 → 引擎 → 显示的典型流程:
外部纹理(OpenGL ES)
适合应用已用 OpenGL ES 渲染、希望避免 CPU 往返拷贝的场景。GL_TEXTURE_2D 建议的采样参数:
- 输入纹理为
GL_TEXTURE_2D,一般为 RGBA;stride通常为width * 4 - 在第一次 GL 回调里惰性创建引擎,确保上下文已绑定
- 输出纹理由 SDK 持有,不要
glDeleteTextures;释放对应的ImageFrame即可 - GL 上下文丢失后,先
release()再在新上下文中重建引擎 - 实时 GL 管线使用
FrameType.VIDEO - 接入 TRTC / 声网 / LiveKit 等推流或会议 SDK:见 第三方对接

