Skip to main content
SDK 2.0.0. O Flutter apenas define parâmetros de beleza. Os quadros ao vivo nunca entram no Dart: chame FacebetterPlugin.processTexture no thread GL nativo do SDK do fornecedor e, em seguida, escreva a textura de saída de volta.

Contrato compartilhado

Não chame processFile / processImageBytes / processImageFile / processImageToUiImage no mecanismo ao vivo.
Credenciais: Assinatura, Autenticação e licença. Regras de textura nativa: Android · Integração com terceiros, iOS · Integração com terceiros. Não: envie pixels ou ids de textura do Dart a cada quadro; chame processTexture fora do thread GL; crie um segundo mecanismo externalContext: true antes de dar dispose no primeiro.

TRTC (Tencent)

Pré-requisitos: tencent_trtc_cloud (ou TRTC nativo) e facebetter_flutter: ^2.0.0. Ao ativar o pré-processamento personalizado, use Texture2D + Texture buffer, não YUV / PixelBuffer. Depois de criar o mecanismo no Dart, ative o processamento personalizado (o nome da API pode variar conforme a versão do plugin):

iOS — onProcessVideoFrame

Se você usar ITXCustomBeautyProcesser do tencent_trtc_cloud, mantenha Texture2D / Texture e chame o mesmo processTexture no callback. Registre a factory depois de GeneratedPluginRegistrant.register(with:).

Android — Kotlin

Encerramento


Agora

O mesmo modelo do nativo: chame FacebetterPlugin.processTexture dentro do observer de quadro / callback de pré-processamento personalizado iOS / Android; o Dart só é dono dos parâmetros do FBEngine.
  1. Dart: FBEngine.create(externalContext: true) e defina a beleza
  2. Ative o processamento de vídeo personalizado ou registre um observer nativo conforme o plugin Agora Flutter (as APIs variam conforme a versão de agora_rtc_engine)
  3. Em um textureId GL_TEXTURE_2D, chame processTexture e escreva de volta no quadro do fornecedor
Para callbacks somente OES / YUV, converta para Texture2D primeiro, ou veja Android / iOS (o caminho ao vivo do Flutter ainda prefere textura + processTexture). Encerramento: cancele o registro do pré-processamento Agora e, em seguida, engine.dispose().

LiveKit

De novo: o Dart define parâmetros, o nativo processa texturas.
  1. Crie um mecanismo com externalContext: true no Dart
  2. Obtenha quadros de textura via LiveKit Flutter / um capturer personalizado nativo ou processador de vídeo
  3. Chame FacebetterPlugin.processTexture no thread GL e, em seguida, alimente a saída de volta na track LiveKit
Os detalhes do hook variam conforme livekit_client e a plataforma; regras de textura: Android · LiveKit, iOS · LiveKit.

Relacionado