Skip to main content
SDK 2.0.0. Flutter solo configura parámetros de belleza. Los fotogramas en directo nunca entran en Dart: llama a FacebetterPlugin.processTexture en el hilo GL nativo del SDK del vendor y luego escribe de vuelta la textura de salida.

Contrato compartido

No llames a processFile / processImageBytes / processImageFile / processImageToUiImage en el motor en directo.
Credenciales: Suscripción, Autenticación y licencia. Reglas de textura nativa: Android · Integración con terceros, iOS · Integración con terceros. No hagas: empujar píxeles o ids de textura desde Dart en cada fotograma; llamar a processTexture fuera del hilo GL; crear un segundo motor externalContext: true antes de hacer dispose del primero.

TRTC (Tencent)

Requisitos: tencent_trtc_cloud (o TRTC nativo) y facebetter_flutter: ^2.0.0. Al activar el preprocess personalizado, usa Texture2D + Texture buffer, no YUV / PixelBuffer. Tras crear el motor en Dart, activa el proceso personalizado (el nombre de la API puede variar según la versión del plugin):

iOS — onProcessVideoFrame

Si usas ITXCustomBeautyProcesser de tencent_trtc_cloud, mantén Texture2D / Texture y llama al mismo processTexture en el callback. Registra la factory después de GeneratedPluginRegistrant.register(with:).

Android — Kotlin

Desmontaje


Agora

El mismo modelo que nativo: llama a FacebetterPlugin.processTexture dentro del observer de fotogramas / callback de preprocess personalizado de iOS / Android; Dart solo posee los parámetros de FBEngine.
  1. Dart: FBEngine.create(externalContext: true) y configura la belleza
  2. Activa el procesamiento de vídeo personalizado o registra un observer nativo según el plugin Agora Flutter (las APIs varían según la versión de agora_rtc_engine)
  3. En un textureId GL_TEXTURE_2D, llama a processTexture y escribe de vuelta al fotograma del vendor
Para callbacks solo OES / YUV, convierte primero a Texture2D, o consulta Android / iOS (el camino en directo de Flutter sigue prefiriendo textura + processTexture). Desmontaje: anula el registro del preprocess de Agora y luego engine.dispose().

LiveKit

De nuevo: Dart configura parámetros, nativo procesa texturas.
  1. Crea un motor externalContext: true en Dart
  2. Obtén fotogramas de textura vía LiveKit Flutter / un capturador o procesador de vídeo nativo personalizado
  3. Llama a FacebetterPlugin.processTexture en el hilo GL y luego alimenta la salida de vuelta al track de LiveKit
Los detalles del hook varían según livekit_client y la plataforma; reglas de textura: Android · LiveKit, iOS · LiveKit.

Relacionado