集成指引

本文主要介绍如何快速地将腾讯礼物动画特效 SDK 集成到您的项目中,按照如下步骤进行配置,就可以完成 SDK 的集成工作。

开发环境要求

Android Studio 2.0+。
Android 4.4(SDK API 19)及以上系统。

集成 SDK

手动集成

1. 下载 MediaX_Android_SDK_Latest.zip ,下载完成后进行解压获取到 SDK aar 文件。
2. 将下载文件解压之后 SDK 目录下的 aar 文件拷贝到工程的 app/libs 目录下:

3. 在工程根目录下的 build.gradle 中,添加 flatDir,指定本地仓库路径。

4. 添加腾讯礼物动画特效 SDK 依赖,在 app/build.gradle 中,添加引用 aar 包的代码。

implementation(name: "TCEffectPlayer_x.x.x", ext: "aar")
implementation(name: "TCMediaX_x.x.x", ext: "aar")
implementation(name: "xmagic-auth_x.x.x", ext: "aar")
注意:
如上示例中的 x.x.x 为版本号,具体以实际下载的 SDK 最新版本号为准;另外需要注意3个 aar 的版本号必须一致。
5. 在 app/build.gradle 的 defaultConfig 中,指定 App 使用的 CPU 架构(目前支持 armeabi-v7a 和 arm64-v8a)。
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}

Gradle 方式集成

1. 打开对应的 build.gradle 文件,在 dependencies 标签内加上腾讯礼物动画特效 SDK 依赖项:
获取腾讯动画特效发布的版本,请单击查看 MavenCentral 动画特效版本号
dependencies {
// 不推荐集成最新版本,推荐指定版本号集成
//implementation "com.tencent.mediacloud:TCEffectPlayer:latest.release"
implementation "com.tencent.mediacloud:TCEffectPlayer:版本号"
}
2. 在 app/build.gradle 的 defaultConfig 中,指定 App 使用的 CPU 架构(目前支持 armeabi-v7a 和 arm64-v8a)。
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
最后,单击 Sync Now 同步 SDK,完成腾讯礼物动画特效 SDK 的集成工作。

设置混淆规则

在 proguard-rules.pro 文件中,将相关类加入不混淆名单:
-keep class com.tcmediax.** { *; }
-keep class com.tencent.** { *; }
-keep class com.tencent.xmagic.** { *; }
# 腾讯礼物动画特效SDK会通过 exifinterface 解析动效资源元数据,如果项目中引入了exifinterface, 必须加入下面的混淆配置
-keep class androidx.exifinterface.** {*;}

软解能力集成指引

优势

由于 Android 系统碎片化严重,在极个别手机上会出现无法避免的硬解失败问题,因此需要借助软解能力来提升播放成功率(成功率可提升至99.99%),因此强烈建议您同时接入软解库,以达到更好的特效播放体验。

集成步骤

已集成 LiteAVSDK_TRTC SDK
如果您之前的项目中已集成视立方相关 SDK,如:LiteAVSDK_TRTC、LiteAVSDK_Live 等。则需要集成腾讯云播放器精简版 SDK(LiteAVSDK_Player_Mini),把对应 LiteAVSDK_Player_Mini.aar 放到工程 libs 目录,然后在 dependencies 中添加对应依赖:
dependencies {
implementation (name:'LiteAVSDK_Player_Mini', ext:'aar')
}
已集成 LiteAVSDK_Professional 相关 SDK
如果您之前的项目中已集成视立方相关SDK,如:LiteAVSDK_Player、LiteAVSDK_Player_Premium、LiteAVSDK_Professional、LiteAVSDK_UGC 等。则软解能力会自动支持,无需额外操作。
注意:
如果您的项目中已经集成了腾讯云视立方 SDK, 请检查是否包含播放器 SDK ,同时检查是否已经申请和配置播放器 License。
未集成视立方相关 SDK
如果您之前的项目中未集成视立方相关 SDK,则建议集成腾讯云播放器精简版 SDK(LiteAVSDK_Player_Mini)。将对应的 LiteAVSDK_Player_Mini.aar 文件放到工程的 libs 目录下,然后在 dependencies 中添加相应依赖:
dependencies {
implementation (name:'LiteAVSDK_Player_Mini', ext:'aar')
}
最后一步,需要配置 so 文件:将 jniLibs_txffmpeg_so.zip 链接中 so 文件下载到本地之后解压,把解压后的 jniLibs 目录中的 so 文件复制到 app 的 src/main 目录中,并且在 app/build.gradle 中配置对应路径:

sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}

申请 License

使用腾讯礼物动画特效 SDK 需要申请对应的 License,详细申请流程请参见 License 指引

常见问题

xmagic 冲突如何解决?

如果您的项目中同时集成了美颜特效 SDK,由于美颜特效 SDK 和动画特效 SDK 都使用了 License 授权库 xmagic-auth,所以集成时会出现类冲突(如:Duplicate class com.tencent.xmagic.auth.Auth)、so 文件冲突(如:libYTCommonXMagic.so 冲突)。处理方式如下:
1. AAR 本地集成
如果您是通过 aar 本地集成的,此时在集成动画特效 SDK 时,不需要往项目中额外集成 xmagic-auth.arr,移除掉:xmagic-auth-x.x.x.aar 依赖的引入,项目内共享一份美颜特效 SDK 的 License 授权库即可。
2. Gradle 集成
如果您是 Gradle 方式集成的,则参考下面的代码,把 License 授权库移除:
implementation("com.tencent.mediacloud:TCEffectPlayer:版本号") {
exclude group: "com.tencent.mediacloud", module: "TCXMagicAuth"
}

如何处理加密视频配置?

如果您在使用 TepTools 工具转换动画时,勾选了:Anim Encrypt 开关,那么转换出来的动画则是加密的,此时在使用特效播放器播放时,如果您的应用targetSDKVersion 大于或等于28,那么需要单独进行如下配置:
1. 在项目新建 res/xml/network_security_config.xml 文件,设置网络安全性配置:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">127.0.0.1</domain>
</domain-config>
</network-security-config>
2. 在 AndroidManifest.xml 文件下的 application 标签增加以下属性:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>