現在、ショート動画のエンタープライズ版はサポートが終了しています。そのうち、美顔モジュールはデカップリングおよびアップグレードされ、Tencent Effect SDKになりました。Tencent Effect SDKの美顔効果はより自然であるほか、製品の機能はより強力であり、統合方法はより柔軟です。このドキュメントは、ショート動画のエンタープライズ版をTencent Effect SDK(美顔エフェクト)にアップグレードするための移行ガイドです。
.aar
ファイルを削除し、SDKのlibsディレクトリにある.aar`ファイルをxmagicモジュールのlibsディレクトリにコピーします。assets/
ディレクトリにあるすべてのリソースをxmagicモジュールの../src/main/assets
ディレクトリにコピーします。SDKパッケージのMotionResフォルダにリソースがある場合は、このフォルダを../src/main/assets
ディレクトリにコピーします。../src/main/jniLibs
ディレクトリにコピーします。SDKをEnterprise版からProfessional版にアップグレードします。
implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'
implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'
プロジェクトのapplicationのoncreateメソッドで以下のメソッドを呼び出します:
XMagicImpl.init(this);
XMagicImpl.checkAuth(null);
XMagicImpl型で、申請したTencent EffectのLicense URLとKeyに置き換えます。
ショート動画のレコーディングインターフェース(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();
}
/**
mXMagic = <span class="hljs-keyword">new</span> XMagicImpl(<span class="hljs-keyword">this</span>, mUGCKitVideoRecord.getBeautyPanel());
}else{ mXMagic.onResume();
}ugckitモジュールのbuild.gradleファイルで、beautysettingkitモジュールへの依存関係を削除し、プロジェクトをコンパイルして、エラーコードをコメントアウトしてください。
この記事はお役に立ちましたか?