연동
엔진 생성 / init() 실패
EngineConfig에는 비어 있지 않은licenseToken이 있어야 합니다. Web 설정에는appId/appKey필드가 없습니다.- 프로덕션: 서버가 인증 API 본문(
{success, token}또는 오류 JSON)을 반환해야 합니다. 인증 및 라이선스를 참고하세요. - 페이지가 SDK 런타임 파일을 다운로드할 수 있는지 확인하세요(번들러 / CDN). 오류 처리를 참고하세요.
- 페이지가 HTTPS 또는 localhost인지 확인하세요.
FacebetterError.code를 확인하세요(오류 처리).
AppID / AppKey는 어떻게 전달하나요?
전달하지 않습니다.EngineConfig에 넣지 마세요. 서버에 보관하고 토큰을 받은 뒤 licenseToken을 전달하세요.
브라우저에서 오프라인 .lic를 사용할 수 있나요?
아니요. Web은 온라인 v2 경로를 완료해야 합니다.
패키지는 어떻게 업데이트하나요?
효과
뷰티가 약하거나 너무 강함
강도는[0.0, 1.0]입니다. 리셰이프는 [-1.0, 1.0]입니다(0 = 꺼짐). 정지 이미지에는 FrameType.Image를 시도하세요. 스타일 열거형: 파라미터 열거형.
필터 / 스티커가 동작하지 않음
.fbd 경로 또는 바이트를 setFilter / setSticker에 직접 전달하세요. 빈 문자열은 예외를 던집니다. 끄려면 clearFilter() / clearSticker()를 호출하세요.
가상 배경이 비어 있음
options 객체가 아니라setVirtualBackgroundBlur(level) 또는 setVirtualBackground(path|Uint8Array)를 호출하세요. 블러 0은 효과를 지웁니다. 그린스크린에서 setChromaKey는 마스크만 설정하므로, 블러 또는 이미지도 설정해야 합니다.
출력이 검정색
비디오에 아직 프레임이 없을 수 있습니다(videoWidth === 0). Canvas 컨텍스트가 없을 수 있습니다. engine.initialized 이후에만 processImage를 호출하세요.
성능
미리보기가 느림
카메라:FrameType.Video를 사용하고, 캡처 해상도를 제한하며(예: 720p), 랜드마크 콜백을 피하고, 루프를 requestAnimationFrame에서 실행하세요. engine.getStats().avgProcessTimeMs를 확인하세요.
갤러리 대형은 슬라이더마다 원본을 processImage에 넣지 마세요. 파일을 열 때 작은 미리보기 프레임을 만들고, 내보낼 때 원본을 한 번 처리하세요. 모범 사례를 보세요.
SPA에서 메모리가 증가함
페이지를 떠날 때engine.destroy()를 호출하세요. 라우트 변경 시 엔진이 누수되지 않게 하세요.
호환성
지원: Chrome 57+, Firefox 52+, Safari 11+, Edge 16+. 모바일에서는 캡처 해상도와 효과 강도를 낮추세요.React 예제
demo/web/react.

