ショート動画(エンタープライズ版)の移行ガイド
現在、ショート動画のエンタープライズ版はサポートが終了しています。そのうち、美顔モジュールはデカップリングおよびアップグレードされ、Tencent Effect SDKになりました。Tencent Effect SDKの美顔効果はより自然であるほか、製品の機能はより強力であり、統合方法はより柔軟です。このドキュメントは、ショート動画のエンタープライズ版をTencent Effect SDK(美顔エフェクト)にアップグレードするための移行ガイドです。
注意事項
- xmagicモジュールのglideライブラリのバージョン番号を変更して、実際に使用するものと一致させます。
- xmagicモジュールの最小バージョン番号を変更して、実際に使用するものと一致させます。
統合の手順
手順1:Demoプロジェクトの解凍
- Tencent Effect TEを統合したUGSV Demoプロジェクトをダウンロードします。このDemoは、Tencent Effect SDK S1-04パッケージに基づいて作成されています。
- リソースを置き換えます。このDemoプロジェクトで使用されるSDKパッケージは実際のパッケージと同じではない可能性があるため、このDemoの関連SDKファイルを実際に使用するパッケージのSDKファイルに置き換えてください。具体的な操作は以下のとおりです:
- xmagicモジュールのlibsディレクトリにある
.aar
ファイルを削除し、SDKのlibsディレクトリにある.aar`ファイルをxmagicモジュールのlibsディレクトリにコピーします。 - xmagicモジュールのassetsディレクトリにあるすべてのファイルを削除し、SDKの
assets/
ディレクトリにあるすべてのリソースをxmagicモジュールの../src/main/assets
ディレクトリにコピーします。SDKパッケージのMotionResフォルダにリソースがある場合は、このフォルダを../src/main/assets
ディレクトリにコピーします。 - xmagicモジュールのjniLibsディレクトリにあるすべての.soファイルを削除し、SDKパッケージのjniLibsで対応する.soファイルを見つけて(SDKのjinLibsフォルダにあるarm64-v8aおよびarmeabi-v7aの.soファイルが圧縮パッケージに存在しているため、先に解凍してください)、xmagicモジュールの
../src/main/jniLibs
ディレクトリにコピーします。
- xmagicモジュールのlibsディレクトリにある
- Demoプロジェクトのxmagicモジュールを実際のプロジェクトにインポートします。
手順2:SDKバージョンのアップグレード
SDKをEnterprise版からProfessional版にアップグレードします。
- 置換前:
implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'
- 置換後:
implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'
手順3:美顔Licenseの設定
プロジェクトのapplicationのoncreateメソッドで以下のメソッドを呼び出します:
XMagicImpl.init(this); XMagicImpl.checkAuth(null);
XMagicImpl型で、申請したTencent EffectのLicense URLとKeyに置き換えます。
手順4:コードの実装
ショート動画のレコーディングインターフェース(TCVideoRecordActivity.java)を例として説明します。
TCVideoRecordActivity.java
型で、以下の変数コードを追加します。private XMagicImpl mXMagic; private int isPause = 0;//0:一時停止ではない、1:一時停止、2:一時停止中、3:廃棄が必要
TCVideoRecordActivity.java
型のonCreateメソッドの後に以下のコードを追加します。TXUGCRecord instance = TXUGCRecord.getInstance(this); instance.setVideoProcessListener(new TXUGCRecord.VideoCustomProcessListener() { @Override public int onTextureCustomProcess(int textureId, int width, int height) { if (isPause == 0 && mXMagic !=null) { return mXMagic.process(textureId, width, height); } return 0; } @Override public void onDetectFacePoints(float[] floats) { } @Override public void onTextureDestroyed() { if (Looper.getMainLooper() != Looper.myLooper()) { //メインスレッドではない if (isPause == 1) { isPause = 2; if (mXMagic != null) { mXMagic.onDestroy(); } initXMagic(); isPause = 0; } else if (isPause == 3) { if (mXMagic != null) { mXMagic.onDestroy(); } } } } }); XMagicImpl.checkAuth((errorCode, msg) -> { if (errorCode == TELicenseCheck.ERROR_OK) { loadXmagicRes(); }else{ TXCLog.e("TAG", "認証に失敗しました。認証urlおよびkeyを確認してください" + errorCode + " " + msg); } });
onStopメソッドで以下のコードを追加します:
isPause = 1; if (mXMagic != null) { mXMagic.onPause(); }
onDestroyメソッドで以下のコードを追加します:
isPause = 3; XmagicPanelDataManager.getInstance().clearData();
onActivityResultメソッドの一番前に以下のコードを追加します:
if (mXMagic != null) { mXMagic.onActivityResult(requestCode, resultCode, data); }
このデータ型の最後に以下の2つのメソッドを追加します:
private void loadXmagicRes() { if (XMagicImpl.isLoadedRes) { XmagicResParser.parseRes(getApplicationContext()); initXMagic(); return; } new Thread(() -> { XmagicResParser.setResPath(new File(getFilesDir(), "xmagic").getAbsolutePath()); XmagicResParser.copyRes(getApplicationContext()); XmagicResParser.parseRes(getApplicationContext()); XMagicImpl.isLoadedRes = true; new Handler(Looper.getMainLooper()).post(() -> { initXMagic(); }); }).start(); } /**
- 美顔SDKの初期化
- /
private void initXMagic() {
if (mXMagic == null) {}else{mXMagic = <span class="hljs-keyword">new</span> XMagicImpl(<span class="hljs-keyword">this</span>, mUGCKitVideoRecord.getBeautyPanel());
}mXMagic.onResume();
}
手順5:その他のデータ型の変更
- AbsVideoRecordUI型のmBeautyPanel型をRelativeLayout型に変更し、getBeautyPanel()メソッドの戻り型をRelativeLayoutに変更します。同時に、対応するXMLの構成を変更し、エラーコードをコメントアウトします。
- UGCKitVideoRecord型のエラーコードをコメントアウトします。
- ScrollFilterView型のコードを変更し、mBeautyPanel変数を削除して、エラーコードをコメントアウトします。
手順6:beautysettingkitモジュールへの依存関係の削除
ugckitモジュールのbuild.gradleファイルで、beautysettingkitモジュールへの依存関係を削除し、プロジェクトをコンパイルして、エラーコードをコメントアウトしてください。