Skip to main content
SDK 2.0.0. Flutter는 뷰티 파라미터만 설정합니다. 라이브 프레임은 Dart로 들어오지 않습니다. 벤더 SDK의 네이티브 GL 스레드에서 FacebetterPlugin.processTexture를 호출한 뒤 출력 텍스처를 다시 씁니다.

공통 계약

라이브 엔진에서 processFile / processImageBytes / processImageFile / processImageToUiImage를 호출하지 마세요.
자격 증명: 구독, 인증 및 라이선스. 네이티브 텍스처 규칙: Android · 서드파티 연동, iOS · 서드파티 연동. 하지 마세요: 매 프레임 Dart에서 픽셀이나 texture id를 푸시; GL 스레드 밖에서 processTexture 호출; 첫 라이브 엔진을 dispose하기 전에 두 번째 externalContext: truecreate.

TRTC (Tencent)

사전 요구 사항: tencent_trtc_cloud(또는 네이티브 TRTC)와 facebetter_flutter: ^2.0.0. 커스텀 전처리를 켤 때 YUV / PixelBuffer가 아니라 Texture2D + Texture buffer를 사용하세요. Dart에서 엔진을 만든 뒤 커스텀 처리를 켭니다(API 이름은 플러그인 버전에 따라 다를 수 있음):

iOS — onProcessVideoFrame

tencent_trtc_cloudITXCustomBeautyProcesser를 쓰면 Texture2D / Texture를 유지하고 콜백에서 같은 processTexture를 호출하세요. 팩토리는 GeneratedPluginRegistrant.register(with:) 이후에 등록하세요.

Android — Kotlin

해제


Agora

네이티브와 같은 모델입니다. iOS / Android 프레임 옵저버 / 커스텀 전처리 콜백 안에서 FacebetterPlugin.processTexture를 호출하고, Dart는 FBEngine 파라미터만 소유합니다.
  1. Dart: FBEngine.create(externalContext: true) 후 뷰티 설정
  2. Agora Flutter 플러그인에 따라 커스텀 비디오 처리를 켜거나 네이티브 옵저버를 등록(agora_rtc_engine 버전에 따라 API가 다름)
  3. GL_TEXTURE_2D textureId에서 processTexture를 호출하고 벤더 프레임에 다시 씀
OES / YUV 전용 콜백이면 먼저 Texture2D로 변환하거나, Android / iOS를 참고하세요(Flutter 라이브 경로는 여전히 텍스처 + processTexture를 권장). 해제: Agora 전처리를 등록 해제한 뒤 engine.dispose().

LiveKit

다시: Dart가 파라미터를 설정하고, 네이티브가 텍스처를 처리합니다.
  1. Dart에서 externalContext: true 엔진을 만듭니다
  2. LiveKit Flutter / 네이티브 커스텀 capturer 또는 video processor로 텍스처 프레임을 얻습니다
  3. GL 스레드에서 FacebetterPlugin.processTexture를 호출한 뒤 출력을 LiveKit 트랙에 다시 넣습니다
훅 세부 사항은 livekit_client와 플랫폼에 따라 다릅니다. 텍스처 규칙: Android · LiveKit, iOS · LiveKit.

관련 문서