tencent cloud

All product documents
User Generated Short Video SDK
Migrating from UGSV Enterprise
Last updated: 2022-08-02 15:05:19
Migrating from UGSV Enterprise
Last updated: 2022-08-02 15:05:19
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.

Notes

1. Modify the version number of the glide library in the Xmagic module to make it the same as the actual version number.
2. Modify the earliest version number in the Xmagic module to make it the same as the actual version number.

Directions

Step 1. Replace resources

1. Download the UGSV demo which has integrated the Tencent Effect SDK. This demo is built based on the Tencent Effect SDK S1-04 edition.
2. Replace the SDK files in the demo with the files for the SDK you actually use. Specifically, follow the steps below:
Replace the .aar file in the libs directory of the Xmagic module with the .aar file in libs of your SDK.
Replace all the files in ../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.
Replace all the .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).
3. Import the Xmagic module in the demo into your project.

Step 2. Upgrade the SDK edition

Upgrade the SDK from UGSV Enterprise to UGSV Professional.
Before replacement: implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'
After replacement: implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'

Step 3. Configure the license

1. Call the following APIs in oncreate of application in your project:
XMagicImpl.init(this);
XMagicImpl.checkAuth(null);
2. In the XMagicImpl class, replace the values of license URL and key to the ones you obtain from Tencent Cloud.

Step 4. Implement the code

The following example shows you how to implement the short video shooting view (TCVideoRecordActivity.java).
1. 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
2. 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);
}
});
3. Add the following code to onStop:
isPause = 1;
if (mXMagic != null) {
mXMagic.onPause();
}
4. Add the following code to onDestroy:
isPause = 3;
XmagicPanelDataManager.getInstance().clearData();
5. Add the following code at the beginning of onActivityResult:
if (mXMagic != null) {
mXMagic.onActivityResult(requestCode, resultCode, data);
}
6. 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();
}
}

Step 5. Modify other classes

1. Change the type of 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.
2. Comment out the code that reports errors in the UGCKitVideoRecord class.
3. In the ScrollFilterView class, delete the mBeautyPanel variable and comment out the code that reports errors.

Step 6. Delete the beautysettingkit dependencies

In 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?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 available.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon