目前,短视频企业版已经下线,其中美颜模块解耦升级成为腾讯特效SDK。腾讯特效 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 类中替换成您申请的腾讯特效 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);
}
在此类的最后添加如下两个方法:
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 模块的依赖,编译项目将报错的代码注释掉即可。
本页内容是否解决了您的问题?