Skip to main content

SDK の追加

方法 A: Maven(推奨)

プロジェクトの build.gradle / settings.gradle のリポジトリ:
モジュールの build.gradle:
Version Cataloggradle/libs.versions.toml):

方法 B: ローカル AAR

ダウンロード から SDK を取得し、facebetter.aarlibs/ にコピーしてから:

権限

AndroidManifest.xml:
API 23+ では CAMERA を実行時にリクエストしてください。

インポート

ログ

ログはデフォルトでオフです。new BeautyEffectEngine(...)に有効にしてください。
エンジン構築前に setLogConfig を呼び出さないと、初期化ログを見逃します。

エンジンの作成

認証情報: サブスクリプション。認証の詳細: 認証とライセンス licenseToken が空でない場合はそれを使います(ライセンストークン / {token} JSON / オフライン .lic)。それ以外は appId + appKey/facebetter/v2/auth を呼び出します。
コンストラクタは null を返しません。config が無効なら例外を投げます。非同期初期化はコールバック上の EngineEventCode.INITIALIZATION_COMPLETE / INITIALIZATION_FAILED を監視してください。

美顔

強度 [0.0, 1.0]0 で効果を無効にします。ErrorCode.SUCCESS0)を確認してください。
setBeautySkinOnly(true) では、スムージング / 美白 / シャープニング / 血色は検出された肌にのみ適用されます。衣服と背景は変わりません。
スタイル: パラメータ列挙

リシェイプ

範囲 [-1.0, 1.0]0 はオフです。
26 パラメータすべて(FACE_THINBROW_THICKNESS)と正負の方向: パラメータ列挙

ボディリシェイプ

範囲 [0.0, 1.0]0 はオフ。先に addResourcePackresource_body.fbd を登録してください(AAR には含まれません)。パラメータ列挙オプションリソースパック

メイク

強度を設定してから、スタイルおよび / または色を設定します。
プリセット一覧: パラメータ列挙

バーチャル背景とクロマキー

ぼかし(0 でクリア)、静止画、またはクロマキーマスク + 塗りつぶし。
clearChromaKey() はポートレートセグメンテーションを復元し、現在のぼかし / 画像の塗りつぶしは取り除きません

フィルターとステッカー

ファイルパスまたは assets から .fbd を読み込みます。登録手順はありません。
3D ステッカーにはオプションの resource_3d.fbd パックが必要です(AAR には含まれません)。オプションリソースパック を参照してください。アプリの assets から登録してから、3D ステッカー .fbd を適用します。
フィルター / ステッカーの変更は、次の processImage で有効になります。

コールバックと統計

フレームの処理

作成したすべてのフレーム(および processImage の出力)で ImageFrame.release() を呼び出してください。省略するとネイティブメモリがリークします。
ImageFrame.typeFrameType.IMAGE(静止画)または FrameType.VIDEO(カメラ / ライブ)に設定します。processImage が受け取るのはフレームのみで、追加のモード引数はありません。
ファイルまたは Bitmap から:
カメラセンサーが回転している場合は、処理前に回転 / ミラーします。
エンジンは入力と出力のピクセルフォーマットを揃えます(NV21 入力 → NV21 出力、RGBA 入力 → RGBA 出力)。
getData() / プレーナーアクセサでピクセルを読むか、変換します。

カメラパイプライン

典型的な Camera2 YUV_420_888 → エンジン → 表示:

外部テクスチャ(OpenGL ES)

externalContext = true で、GL スレッド上にエンジンを作成してください。入力と出力のテクスチャはそのコンテキストを共有する必要があります。
すでに OpenGL ES で描画しており、CPU の往復を避けたい場合に使います。
入力 GL_TEXTURE_2D の推奨サンプラー状態:
注意:
  • 入力テクスチャ: GL_TEXTURE_2D、通常は RGBA。stride は通常 width * 4
  • コンテキストがカレントになるよう、最初の GL コールバックでエンジンを遅延作成します
  • 出力テクスチャは SDK が所有します。glDeleteTextures しないでください。ImageFrame を解放します
  • GL コンテキストが失われた場合は、エンジンを release() し、新しいコンテキスト上で再作成します
  • ライブ GL パイプラインでは FrameType.VIDEO を使います
  • TRTC / Agora / LiveKit などの SDK: サードパーティ連携

ライフサイクル

onDestroy / onDetachengine.release() を呼び出してください。未解放のエンジンは GPU とネイティブメモリをリークします。

関連