SDK 추가
방법 A: Maven (권장)
프로젝트build.gradle / settings.gradle repositories:
build.gradle:
gradle/libs.versions.toml):
방법 B: 로컬 AAR
다운로드에서 SDK를 받아facebetter.aar를 libs/에 복사한 뒤:
권한
AndroidManifest.xml:
API 23+에서는 런타임에
CAMERA를 요청하세요.
가져오기
로깅
로깅은 기본적으로 꺼져 있습니다.new BeautyEffectEngine(...) 전에 켜세요.
엔진 생성
자격 증명: 구독. 인증 세부 사항: 인증 및 라이선스.licenseToken이 비어 있지 않으면 사용됩니다(라이선스 토큰 / {token} JSON / 오프라인 .lic). 그렇지 않으면 appId + appKey가 /facebetter/v2/auth를 호출합니다.
null을 반환하지 않습니다. config가 유효하지 않으면 예외를 던집니다. 비동기 초기화는 콜백에서 EngineEventCode.INITIALIZATION_COMPLETE / INITIALIZATION_FAILED를 확인하세요.
뷰티
강도[0.0, 1.0]. 0은 효과를 끕니다. ErrorCode.SUCCESS(0)를 확인하세요.
리셰이프
범위[-1.0, 1.0]. 0은 꺼짐입니다.
FACE_THIN … BROW_THICKNESS)와 양/음 방향: 파라미터 열거형.
바디 리셰이프
범위[0.0, 1.0]. 0은 꺼짐. 먼저 addResourcePack으로 resource_body.fbd를 등록하세요(AAR에 없음). 파라미터 열거형과 선택 리소스 팩을 참고하세요.
메이크업
강도를 설정한 뒤 스타일 및/또는 색상을 설정합니다.가상 배경과 크로마키
블러(0은 지움), 정지 이미지, 또는 크로마키 마스크 + 채우기.
clearChromaKey()는 인물 세그멘테이션을 복원하며 현재 블러/이미지 채우기는 제거하지 않습니다.
필터와 스티커
파일 경로 또는assets에서 .fbd를 로드합니다. 등록 단계는 없습니다.
resource_3d.fbd 팩이 필요합니다(AAR에 없음). 선택 리소스 팩을 참고하세요. 앱 assets에서 등록한 뒤 3D 스티커 .fbd를 적용합니다.
processImage에서 적용됩니다.
콜백과 통계
프레임 처리
ImageFrame.type을 FrameType.IMAGE(정지) 또는 FrameType.VIDEO(카메라 / 라이브)로 설정합니다. processImage는 프레임만 받으며 추가 모드 인자는 없습니다.
Bitmap에서:
getData() / 평면 접근자로 읽거나 변환합니다.
카메라 파이프라인
일반적인 Camera2YUV_420_888 → 엔진 → 표시:
외부 텍스처 (OpenGL ES)
이미 OpenGL ES로 렌더링하고 CPU round-trip을 피하고 싶을 때 사용합니다.GL_TEXTURE_2D의 권장 샘플러 상태:
- 입력 텍스처:
GL_TEXTURE_2D, 보통 RGBA;stride는 보통width * 4 - 첫 GL 콜백에서 엔진을 지연 생성하여 컨텍스트가 current인지 확인
- 출력 텍스처는 SDK가 소유합니다.
glDeleteTextures를 호출하지 마세요.ImageFrame은 release - GL 컨텍스트가 손실되면 엔진을
release()하고 새 컨텍스트에서 다시 생성 - 라이브 GL 파이프라인에는
FrameType.VIDEO를 사용 - TRTC / Agora / LiveKit 및 유사 SDK: 서드파티 연동

