腾讯特效 SDK 性能调优

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

相关产品
腾讯特效 SDK 产品页,含版本规格、价格与购买入口。

一、开发环境要求

·Android Studio 2.0+。

·Android 4.4(SDK API 19)及以上系统。

二、手动集成

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 依赖项:

获取腾讯动画特效发布的版本,请点击 Maven Central 动画特效版本号。

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 冲突)。处理方式如下:

·AAR 本地集成

如果你是通过 aar 本地集成的,此时在集成动画特效 SDK 时,不需要往项目中额外集成 xmagic-auth.aar,移除掉:xmagic-auth-x.x.x.aar 依赖的引入,项目内共享一份美颜特效 SDK 的 License 授权库即可。

·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>

十、打包时 Missing class 错误如何处理?

如果引入 SDK 之后,在打包时遇到如下错误:

在项目的 proguard-rules.pro 文件中补充如下配置即可:

-dontwarn com.tencent.rtmp.ITXVodPlayListener$ITXVodAudioFrameDataListener-dontwarn com.tencent.rtmp.TXVodDef$TXVodAudioFrameData-dontwarn com.tommy.rtmp.IIXVodPlayListener$IIXVodAudioFrameDataListener-dontwarn com.tommy.rtmp.IXVodDef$IXVodAudioFrameData-dontwarn com.tencent.xmagic.XmagicApi$XmagicLightGameListener-dontwarn com.tencent.xmagic.XmagicApi

更多常见问题请参见 常见问题说明。

赞 (0)
上一篇 4天前
下一篇 4天前