播放器 SDK SDK 集成指引(Android)

如何快速地将腾讯云视立方·播放器 SDK 集成到你的项目中,不同版本的 SDK 集成方式都通用,按照如下步骤进行配置,就可以完成 SDK 的集成工作。

相关产品
播放器 SDK 产品页,含版本规格、价格与购买入口。

一、开发环境要求

·Android Studio 2.0+。

·Android 4.1(SDK API 16)及以上系统。

二、集成 SDK(aar)

你可以选择使用 Gradle 自动加载的方式,或者手动下载 aar 再将其导入到你当前的工程项目中。

三、方法一:自动加载(aar)

播放器 SDK 已经发布到 mavenCentral 库(播放高级版本 mavenCentral 库),你可以通过在 gradle 配置 mavenCentral 库,自动下载更新 LiteAVSDK_Player。

只需要用 Android Studio 打开需要集成 SDK 的工程,然后通过简单的四个步骤修改 build.gradle 文件,就可以完成 SDK 集成:

1. 打开工程根目录下的 build.gradle,添加mavenCentral库。

repositories { mavenCentral()}

2. 打开 app 下的 build.gradle,在 dependencies 中添加 LiteAVSDK_Player 的依赖。

dependencies { // 此配置默认集成 LiteAVSDK_Player 最新版本 implementation 'com.tencent.liteav:LiteAVSDK_Player:latest.release' // 集成历史版,如:10.7.0.13038 版本,可通过下面方式集成 // implementation 'com.tencent.liteav:LiteAVSDK_Player:10.7.0.13038'}

如果你需要集成播放高级版本(Premium)SDK,在 dependencies 中添加如下依赖:

dependencies { // 此配置默认集成 LiteAVSDK_Player_Premium 最新版本 implementation 'com.tencent.liteav:LiteAVSDK_Player_Premium:latest.release' // 集成历史版,如:10.7.0.13038 版本,可通过下面方式集成 // implementation 'com.tencent.liteav:LiteAVSDK_Player_Premium:10.7.0.13038'}

3. 在 defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK_Player 支持 armeabi 、 armeabi-v7a 和 arm64-v8a)。

defaultConfig { ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" }}

4. 单击 Sync Now 按钮同步 SDK,如果你的网络连接 mavenCentral 没有问题,很快 SDK 就会自动下载集成到工程里。

四、方法二:手动下载(aar)

如果你的网络连接 mavenCentral 有问题,也可以手动下载 SDK 集成到工程里:

1. 下载 LiteAVSDK_Player ,下载完成后进行解压。

如果你需要集成播放高级版本(Premium)SDK,请 单击此处 下载。

2. 将下载文件解压之后 SDK 目录下的 aar 文件拷贝到工程的 app/libs 目录下:


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


4. 添加 LiteAVSDK_Player 依赖,在 app/build.gradle 中,添加引用 aar 包的代码。


implementation(name:'LiteAVSDK_Player_10.7.0.13038', ext:'aar')

5. 在 app/build.gradle 的 defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK_Player 支持 armeabi 、armeabi-v7a 和 arm64-v8a)。

defaultConfig { ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" }}

6. 单击 Sync Now 按钮同步 SDK,完成 LiteAVSDK 的集成工作。

五、集成 SDK(jar)

如果你不想集成 aar 库,也可以通过导入 jar 和 so 库的方式集成 LiteAVSDK:

1. 下载 LiteAVSDK_Player ,下载完成后进行解压。在 SDK 目录下找到 LiteAVSDK_Player_xxx.zip(其中 xxx 为 LiteAVSDK 的版本号),解压后得到 libs 目录,里面主要包含 jar 文件和 so 文件夹,文件清单如下:


如果你还需要 armeabi 架构 so,复制一份 armeabi-v7a 目录,重命名为 armeabi 即可。

如果你需要集成播放高级版本(Premium)SDK,请 单击此处 下载。

2. 将解压得到的 jar文件和 armeabi、armeabi-v7a、arm64-v8a 文件夹拷贝到 app/libs 目录下。


3. 在 app/build.gradle 中,添加引用 jar 库的代码。


dependencies{ implementation fileTree(dir:'libs',include:['*.jar'])}

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


5. 在 app/build.gradle 中,添加引用 so 库的代码。


6. 在 app/build.gradle 的 defaultConfig 中,指定 App 使用的 CPU 架构(目前 LiteAVSDK 支持 armeabi、armeabi-v7a 和 arm64-v8a)。

defaultConfig { ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" }}

7. 单击 Sync Now 按钮同步 SDK,完成 LiteAVSDK 的集成工作。

六、配置 App 打包参数

注意:LiteAVSDK Player 从 11.7 版本开始,已经默认移除了 libijkhlscache-master.so, 所以不需要此配置。

注意:如果之前没有使用过9.4以及更早版本的 SDK 的 下载缓存功能(TXVodDownloadManager 中的相关接口),并且不需要在9.5及后续 SDK 版本播放9.4及之前缓存的下载文件,可以不需要该功能的 so 文件,达到减少安装包的体积。

例如:在9.4及之前版本使用了 TXVodDownloadManager 类的 setDownloadPath 和 startDownloadUrl 函数下载了相应的缓存文件,并且应用内存储了 TXVodDownloadManager 回调的 getPlayPath 路径用于后续播放,这时候需要 libijkhlscache-master.so 播放该 getPlayPath 路径文件,否则不需要。可以在 app/build.gradle 中添加:

// 新客户集成 SDK 建议把下面的脚本加上,可以优化包体积packagingOptions { exclude "lib/armeabi/libijkhlscache-master.so" exclude "lib/armeabi-v7a/libijkhlscache-master.so" exclude "lib/arm64-v8a/libijkhlscache-master.so"}

LiteAVSDK Player 从 11.7 版本开始,已经默认移除了 libijkhlscache-master.so, 如果还要把 libijkhlscache-master.so 打包到 apk, 请参考下面的教程:

1. 点击下载 libijkhlscache zip 压缩包。

2. 解压下载的文件,把 jniLibs 目录复制到 app 的 src 目录。

3. 确保在 build.gradle 文件中配置了 jniLibs 的路径;

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

七、配置 App 权限

在 AndroidManifest.xml 中配置 App 的权限,LiteAVSDK 需要以下权限:

<!–网络权限–><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!–存储–><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

网络安全配置允许 App 发送 http 请求

出于安全考虑,从 Android P 开始,Google 要求 App 的请求都使用加密链接。播放器 SDK 会启动一个 localsever 代理 http 请求,如果你的应用 targetSdkVersion 大于或等于28,可以通过 网络安全配置 来开启允许向127.0.0.1发送 http 请求。 否则播放时将出现 "java.io.IOException: Cleartext HTTP traffic to 127.0.0.1 not permitted" 错误, 导致无法播放视频。配置步骤如下:

1. 在项目新建 res/xml/network_security_config.xml 文件,设置网络安全性配置。

<?xml version="1.0" encoding="utf-8"?><network-security-config> <domain-config cleartextTrafficPermitted="true"> <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>

八、设置混淆规则

在 proguard-rules.pro 文件中,将 LiteAVSDK 相关类加入不混淆名单:

-keep class com.tencent.** { *; }

九、配置 License 授权

单击 License 申请 获取测试用 License,不配置 License 将会播放时视频失败,具体操作请参见 测试版 License。你会获得两个字符串:一个字符串是 licenseURL,另一个字符串是解密 key。
获取到 License 信息后,在调用 SDK 的相关接口前,需要初始化配置 License,详细教程请参见 配置查看 License。

十、项目里面同时集成了直播 SDK/实时音视频/播放器等 LiteAVSDK 系列的多个 SDK 报符号冲突问题怎么解决?

如果集成了2个或以上产品(直播、播放器、TRTC、短视频)的 LiteAVSDK 版本,编译时会出现库冲突问题,因为有些 SDK 底层库有相同符号文件,这里建议只集成一个全功能版 SDK 可以解决,直播、播放器、TRTC、短视频这些都包含在一个 SDK 里面。具体请参见 SDK 下载。

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