tencent cloud

腾讯特效 SDK

动态与公告
产品动态
关于腾讯特效 SDK V3.5 版本更新公告
关于腾讯特效 SDK V3.0 版本相关接口及素材变更公告
产品简介
产品概述
产品功能
基本概念
产品优势
应用场景
购买指南
价格总览
购买流程
欠费退费说明
新手指引
Demo 体验
免费测试
License 指引
移动端 License 新增与续期
PC 端 License 新增与续期
Web端 License 新增与续期
常见问题
SDK 下载
功能说明
SDK 下载
版本历史
SDK 集成指引(无 UI)
通用集成腾讯特效
原子能力集成指引
SDK 集成指引(含 UI)
通用集成腾讯特效
直播 SDK 集成腾讯特效
TRTC SDK 集成腾讯特效
短视频 SDK 集成腾讯特效
Avatar 虚拟人集成指引
API 文档
iOS
Android
Flutter
Web
功能实践
SDK 包瘦身
SDK 集成问题排查
性能调优
效果调优
素材使用
美颜参数说明
美颜场景推荐参数
短视频企业版迁移指引
第三方推流接入美颜(Flutter)
小程序美颜特效实践
素材制作工具使用
Web 美颜特效
产品概述
快速上手
SDK 接入
API 文档
控制台指南
Demo 体验
内置素材总览
实践教程
常见问题
常见问题
通用类相关
技术类相关
License 相关
旧版文档
美颜场景推荐参数
美颜参数表
一分钟集成 TRTC
一分钟集成直播
TE SDK 政策
隐私协议
数据处理和安全协议
联系我们
文档腾讯特效 SDK功能实践短视频企业版迁移指引

短视频企业版迁移指引

PDF
聚焦模式
字号
最后更新时间: 2022-07-18 10:06:18
目前,短视频企业版已经下线,其中美颜模块解耦升级成为腾讯特效SDK。腾讯特效 SDK 美颜效果更加自然,产品功能更加强大,集成方式更加灵活。本文是短视频企业版升级为腾讯特效(美颜特效)的迁移指引。

注意事项

1. 修改 xmagic 模块中的 glide 库的版本号,与实际使用保持一致。
2. 修改 xmagic 模块中的最低版本号,与实际使用保持一致。

集成步骤

步骤一:解压 Demo 工程

1. 下载集成了腾讯特效 TE 的 UGSV Demo 工程。本 Demo 基于腾讯特效 SDK S1-04 套餐构建。
2. 替换资源。由于本 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 目录下。
3. 将 Demo ⼯程中的 xmagic 模块引⼊到实际项⽬⼯程中。

步骤二:SDK 版本升级

将 SDK 从 Enterprise 版本升级为 Professional 版本。
替换前implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'
替换后implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'

步骤三:设置美颜 License

1. 在项目中的 application 的 oncreate 方法中调用如下方法:
XMagicImpl.init(this);
XMagicImpl.checkAuth(null);
2. 在 XMagicImpl 类中替换成您申请的腾讯特效 License URL 和 Key

步骤四:代码实现

以小视频录制界面(TCVideoRecordActivity.java)为例。
1. TCVideoRecordActivity.java 类中添加如下变量代码。
private XMagicImpl mXMagic;
private int isPause = 0;//0 非暂停,1暂停,2暂停中 3.表示要销毁
2. 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);
}
});
3. 在 onStop 方法中添加如下代码:
isPause = 1;
if (mXMagic != null) {
mXMagic.onPause();
}
4. 在 onDestroy 方法中添加如下代码:
isPause = 3;
XmagicPanelDataManager.getInstance().clearData();
5. 在 onActivityResult 方法最前边添加如下代码:
if (mXMagic != null) {
mXMagic.onActivityResult(requestCode, resultCode, data);
}
6. 在此类的最后添加如下两个方法:
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) {
mXMagic = new XMagicImpl(this, mUGCKitVideoRecord.getBeautyPanel());
}else {
mXMagic.onResume();
}
}

步骤五:对其他类的修改

1. 将 AbsVideoRecordUI 类的 mBeautyPanel 类型修改为 RelativeLayout 类型,getBeautyPanel() 方法返回类型也修改为 RelativeLayout,同时修改对应 XML 中的配置,注掉报错的代码。
2. 注释掉 UGCKitVideoRecord 类中报错的代码。
3. 修改 ScrollFilterView 类中的代码,删除 mBeautyPanel 变量,注释掉报错的代码。

步骤六:删除对 beautysettingkit 模块的依赖

在 ugckit 模块的 build.gradle 文件中删除对 beautysettingkit 模块的依赖,编译项目将报错的代码注释掉即可。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈