SDK接入指南
请仔细阅读本文档,以便您后续以正确的方式接入SDK的其他功能
1. 概述
Android Live SDK 是适用于Android平台的云直播SDK,使用此SDK可以与HD视频云直播服务进行对接
1.1阅读对象
本文档为技术文档,需要阅读者:
- 具备基本的Android开发能力
- 准备接入HD视频直播或者回放功能
- 对HD云直播产品使用方法有基础的了解,使用帮助地址。
1.2 术语和缩写解释
无
1.3 最低版本要求
Android 4.3
2. 开发准备
2.1 开发环境
- Android Studio 3.0之上
- Android SDK 官方SDK
- targetSdkVersion版本 不高于29,minSdkVersion不小于19
2.2 混淆配置
SDK代码已经过混淆,如果需要对接入应用进行代码混淆,需要在配置文件中增加如下代码,防止SDK的二次混淆
-keep class com.bokecc.**{*;}
-keep public interface com.bokecc.**{*;}
-keep public class org.apache.http.**{*;}
-keep public class tv.**{*;}
-keep class org.webrtc.**{*;}
-keep class com.intel.webrtc.base.**{*;}
-keep interface com.intel.webrtc.base.**{*;}
-keep class com.tencent.smtt.**{*;}
-keep interface com.tencent.smtt.**{*;}
-keep class com.tencent.tbs.** {*;}
-dontwarn com.bokecc.sdk.mobile.**
-dontwarn com.hd.http.**
-keep class com.hd.http.**{ *;}
-keep class io.agora.**{*;}
2.3 权限配置
AndroidManifest.xml中manifest节点下添加权限
<!--观看直播需要权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--连麦需要权限-->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
如果targetSdkVersion>=29在manifest 中application节点添加
android:usesCleartextTraffic="true"
SDK3.10.0 版本之下需要在application节点下添加如下内容做兼容处理
<!-- 兼容 Android P -->
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
3. 快速集成
3.1 maven集成
从3.8.0版本开始提供maven集成方式,如果需要使用maven远程引用需要在项目根目录build.gradle中的repositories节点添加
maven {
http://nexus-app.bokecc.com/repository/sdk-group/
}
maven { url "http://maven.aliyun.com/nexus/content/repositories/releases"}
然后在需要引用的模块路径下的build.gradle中添加
3.x版本:
dependencies {
implementation 'com.bokecc:dwlivesdk:${version}'
}
4.x版本:
dependencies {
//docsdk为文档模块,内部依赖dwlivesdk,无需再次引入dwlivesdk
implementation 'com.bokecc.doc:docsdk:${version}'
}
说明:4.x版本将文档UI独立成模块,内部依赖同版本dwlivesdk,参考 文档SDK接入指南
3.2 本地集成
v3.17.6版本以下的Release包中包含离线集成的文件,下载地址为:Live_Android_Play_SDK
参考demo将libs文件夹下的jar包和so包导入到项目相应位置
v3.17.6及其后续版本不再提供本地依赖,如有需要,请联系客服
3.3 配置动态库
在app的build.gradle里面的defaultConfig中配置so库cpu平台:
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
3.4 初始化SDK
3.4.1 主动调用api
直播需要主动调用的方法在DWLiveEngine.java (DWLiveEngine为单例) 中,如下:
方法 | 说明 |
---|---|
init(Application app) | 初始化,默认关闭日志 |
init(Application app, boolean enableLog) | 初始化,主动配置是否开启日志 |
init(final Application app, boolean enableLog, boolean enableX5) | 初始化,主动配置是否开启日志,是否开启x5 |
init(final Application app, boolean enableLog, boolean enableX5,boolean isMultiplayer) | 初始化,主动配置是否开启日志,是否开启x5,是否初始化多人连麦 |
3.4.2 关键代码示例
初始化必须在登录之前进行,建议在Application在onCreate方法中
if (DWLiveEngine.getInstance() == null) {
// 初始化SDK true:开启日志,开启x5内核
DWLiveEngine.init(app, true, true);
} else {
Log.i(TAG, "DWLiveEngine has init");
}
4. 集成说明
请仔细配置上述过程,完成以上操作才可以开始集成直播和回放的功能
5. 注意事项
为了增加效率,在线回放和离线回放会使用sd卡进行数据缓存。缓存的路径为/data/data/包名/file/metadata2/ (对应的方法为getFilesDir)
用户可自行根据缓存区大小来清除缓存