Skip to main content
Esta página corresponde al SDK 2.0.0. Autenticación: Autenticación y licencia. Enumeraciones de maquillaje / remodelado: Enumeraciones de parámetros.

Añadir la dependencia del SDK

Método A: CocoaPods (recomendado)

Error de compilación en Xcode 15+Si usas Xcode 15 o posterior, puedes encontrarte con un error Sandbox: rsync.samba deny(1). Lo provoca User Script Sandboxing.Solución:
  1. Selecciona tu Project en Xcode.
  2. Abre Build Settings.
  3. Busca ENABLE_USER_SCRIPT_SANDBOXING.
  4. Cambia el valor de Yes a No.

Método B: Framework manual

Descarga el SDK desde Descargas, copia Facebetter.framework al proyecto y incrusta la biblioteca dinámica con Embed & Sign.
Biblioteca enlazada en Xcode

Permisos

Las apps Mac en sandbox que usan appId / appKey en línea deben permitir red saliente:
Permiso de red de macOS
Cámara (opcional): NSCameraUsageDescription en Info.plist.

Importar

Los tipos de AppKit (NSImage) requieren #import <AppKit/AppKit.h> (en macOS suele llegar por el prefix header o el header del motor).

Configuración de logs

El logging está desactivado por defecto. Llama a setLogConfig: antes de crear el motor.

Crear el motor

Vincula el Bundle ID de macOS y luego pasa licenseToken o appId + appKey. Consulta Obtener AppID y AppKey y Autenticación y licencia. Prioridad: si licenseToken no está vacío (cadena del token de licencia, JSON {token} o contenido de .lic), el SDK lo valida en local. En caso contrario usa appId + appKey contra /facebetter/v2/auth.
createEngineWithConfig: devuelve una instancia, no un singleton. Las herramientas de línea de comandos sin Bundle ID deben vincular el nombre del proceso en la consola.

Belleza de piel

La intensidad suele ser [0.0, 1.0]. Enumeraciones de estilo: Enumeraciones de parámetros.

Remodelado facial

El rango de setReshape:intensity: es [-1.0, 1.0]. 0 desactiva. Parámetros: FBReshape_FaceThinFBReshape_BrowThickness (025). Significados: Enumeraciones de parámetros.

Remodelado corporal

El rango de setBodyReshape:intensity: es [0.0, 1.0]. 0 desactiva. Registra resource_body.fbd con addResourcePack: primero. Parámetros: FBBodyReshape_BodySlimFBBodyReshape_TorsoLong (08). Consulta Enumeraciones de parámetros y Paquetes de recursos opcionales.

Maquillaje

Intensidad, forma y color son llamadas separadas. Estilos completos: Enumeraciones de parámetros.

Fondo virtual

El croma solo sustituye la máscara. El relleno sigue siendo desenfoque o imagen de reemplazo.

Filtros y stickers

Pasa una ruta de archivo .fbd o bytes en memoria. No hay interfaz de registro por ID.
Los stickers 3D necesitan el paquete opcional resource_3d.fbd (no está en el framework). Consulta Paquetes de recursos opcionales:

Callbacks y estadísticas

Procesar imágenes

FBImageFrame admite I420, NV12, NV21, RGB, RGBA, BGR, BGRA, archivo, textura y NSImage.
Configura primero type y luego llama a processImage: (no hay un argumento de modo extra). El formato de salida coincide con el de entrada.
FBFrameTypeVideo es para flujos en tiempo real; FBFrameTypeImage para estáticos y NSImage.
Planos YUV: dataY, dataU, dataV, dataUV y los stride correspondientes.

Textura externa

Crea el motor en el hilo OpenGL y configura externalContext = YES. Las texturas de entrada y salida deben compartir ese contexto.
Para TRTC / Agora / LiveKit: Integración con terceros.

Ciclo de vida

Mantén el motor con una referencia strong del NSViewController. Detén la captura cuando desaparezca la vista o se minimice la ventana. Pon el motor a nil al terminar la sesión.

Relacionado