We have deprecated UGSV Enterprise. The beauty filter module in UGSV Enterprise is now offered as an independent SDK: Tencent Effect SDK. The SDK features more natural effects and more powerful beautification features. It also offers greater flexibility in terms of integration. This document shows you how to migrate from UGSV Enterprise to Tencent Effect SDK.
glide
library in the Xmagic
module to make it the same as the actual version number.Xmagic
module to make it the same as the actual version number..aar
file in the libs
directory of the Xmagic
module with the .aar
file in libs
of your SDK.../src/main/assets
of the Xmagic
module with those in assets/
of your SDK. If there are files in the MotionRes
folder of your SDK package, also copy them to the ../src/main/assets
directory..so
files in ../src/main/jniLibs
of the Xmagic
module with the .so
files in jniLibs
of your SDK package (you need to decompress the ZIP files in the jinLibs
folder to get the .so
files for arm64-v8a and armeabi-v7a).Xmagic
module in the demo into your project.Upgrade the SDK from UGSV Enterprise to UGSV Professional.
implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'
implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'
Call the following APIs in oncreate
of application
in your project:
XMagicImpl.init(this);
XMagicImpl.checkAuth(null);
In the XMagicImpl
class, replace the values of license URL and key to the ones you obtain from Tencent Cloud.
The following example shows you how to implement the short video shooting view (TCVideoRecordActivity.java
).
Add the following variables to the TCVideoRecordActivity.java
class:
private XMagicImpl mXMagic;
private int isPause = 0;// 0: not paused; 1: paused; 2: pausing; 3: to be terminated
Add the following code after onCreate
in the TCVideoRecordActivity.java
class:
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()) { // Not the main thread
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", "Authentication failed. Check the authentication URL and key" + errorCode + " " + msg);
}
});
Add the following code to onStop
:
isPause = 1;
if (mXMagic != null) {
mXMagic.onPause();
}
Add the following code to onDestroy
:
isPause = 3;
XmagicPanelDataManager.getInstance().clearData();
Add the following code at the beginning of onActivityResult
:
if (mXMagic != null) {
mXMagic.onActivityResult(requestCode, resultCode, data);
}
Add the following two methods to the end of this class:
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();
}
/**
* Initialize the beauty filter SDK
*/
private void initXMagic() {
if (mXMagic == null) {
mXMagic = new XMagicImpl(this, mUGCKitVideoRecord.getBeautyPanel());
}else{
mXMagic.onResume();
}
}
mBeautyPanel
in the AbsVideoRecordUI
class to RelativeLayout
and the response type of getBeautyPanel()
to RelativeLayout
. You also need to modify the corresponding XML file and comment out the code that reports errors.UGCKitVideoRecord
class.ScrollFilterView
class, delete the mBeautyPanel
variable and comment out the code that reports errors.beautysettingkit
dependenciesIn the build.gradle
file of the ugckit
module, delete the beautysettingkit
dependencies, compile the project, and comment out the code that report errors.
Was this page helpful?