Adicionar o SDK
Método A: Maven (recomendado)
Nos repositórios dobuild.gradle / settings.gradle do projeto:
build.gradle do módulo:
gradle/libs.versions.toml):
Método B: AAR local
Baixe o SDK em Downloads, copiefacebetter.aar para libs/ e, em seguida:
Permissões
AndroidManifest.xml:
Solicite
CAMERA em runtime na API 23+.
Imports
Logs
O logging vem desligado por padrão. Ative-o antes denew BeautyEffectEngine(...).
Criar o mecanismo
Credenciais: Assinatura. Detalhes de autenticação: Autenticação e licença. SelicenseToken não estiver vazio, ele é usado (token de licença / JSON {token} / .lic offline). Caso contrário, appId + appKey chamam /facebetter/v2/auth.
null; ele lança se config for inválido. Observe EngineEventCode.INITIALIZATION_COMPLETE / INITIALIZATION_FAILED nos callbacks para o init assíncrono.
Beleza
Intensidade[0.0, 1.0]. 0 desativa o efeito. Verifique ErrorCode.SUCCESS (0).
Remodelagem
Faixa[-1.0, 1.0]. 0 desliga.
FACE_THIN … BROW_THICKNESS) e direções positiva / negativa: Enums de parâmetros.
Remodelagem corporal
Faixa[0.0, 1.0]. 0 desliga. Registre resource_body.fbd com addResourcePack primeiro (não está no AAR). Veja Enums de parâmetros e Pacotes de recursos opcionais.
Maquiagem
Defina a intensidade e, em seguida, o estilo e/ou a cor.Fundo virtual e chroma key
Desfoque (0 limpa), imagem estática ou máscara de chroma key + preenchimento.
clearChromaKey() restaura a segmentação de retrato e não remove o preenchimento atual de desfoque/imagem.
Filtros e adesivos
Carregue um.fbd a partir de um caminho de arquivo ou assets. Não há passo de registro.
resource_3d.fbd (não está no AAR). Veja Pacotes de recursos opcionais. Registre-o a partir dos assets do seu app e, em seguida, aplique um .fbd de adesivo 3D:
processImage.
Callbacks e estatísticas
Processar quadros
DefinaImageFrame.type como FrameType.IMAGE (still) ou FrameType.VIDEO (câmera / ao vivo). processImage recebe apenas o quadro — sem argumento extra de modo.
Bitmap:
getData() / acessores planares, ou converta:
Pipeline da câmera
Caminho típico Camera2YUV_420_888 → mecanismo → exibição:
Textura externa (OpenGL ES)
Use isto quando você já renderiza com OpenGL ES e quer evitar idas e voltas na CPU.GL_TEXTURE_2D:
- Textura de entrada:
GL_TEXTURE_2D, tipicamente RGBA;stridecostuma serwidth * 4 - Crie o mecanismo de forma lazy no primeiro callback GL para que o contexto esteja atual
- A textura de saída é do SDK; não chame
glDeleteTexturesnela. Libere oImageFrame - Se o contexto GL for perdido, chame
release()no mecanismo e crie-o de novo no novo contexto - Use
FrameType.VIDEOpara pipelines GL ao vivo - Para TRTC / Agora / LiveKit e SDKs semelhantes: Integração com terceiros

