|
|
# SDK接入指南
|
|
|
|
|
|
请仔细阅读本文档,以便您后续以正确的方式接入SDK的其他功能
|
|
|
|
|
|
- [Android_Play_SDK 接入指南](#android_play_sdk-接入指南)
|
|
|
- [1. 概述](#1-概述)
|
|
|
- [1.1阅读对象](#11阅读对象)
|
|
|
- [1.2 术语和缩写解释](#12-术语和缩写解释)
|
|
|
- [1.3 最低版本要求](#13-最低版本要求)
|
|
|
- [2. 开发准备](#2-开发准备)
|
|
|
- [2.1 开发环境](#21-开发环境)
|
|
|
- [2.2 混淆配置](#22-混淆配置)
|
|
|
- [2.3 权限配置](#23-权限配置)
|
|
|
- [3. 快速集成](#3-快速集成)
|
|
|
- [3.1 maven集成](#31-maven集成)
|
|
|
- [3.2 本地集成](#32-本地集成)
|
|
|
- [3.3 配置动态库](#33-配置动态库)
|
|
|
- [3.4 初始化SDK](#34-初始化sdk)
|
|
|
- [3.4.1 主动调用api](#341-主动调用api)
|
|
|
- [3.4.2 关键代码示例](#342-关键代码示例)
|
|
|
- [4. 集成说明](#4-集成说明)
|
|
|
|
|
|
## 1. 概述
|
|
|
|
|
|
Android Live SDK 是适用于Android平台的云直播SDK,使用此SDK可以与HD视频云直播服务进行对接
|
|
|
|
|
|
### 1.1阅读对象
|
|
|
|
|
|
本文档为技术文档,需要阅读者:
|
|
|
|
|
|
- 具备基本的Android开发能力
|
|
|
- 准备接入HD视频直播或者回放功能
|
|
|
- 对HD云直播产品使用方法有基础的了解,[使用帮助地址](http://doc.bokecc.com/live)。
|
|
|
|
|
|
### 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的二次混淆
|
|
|
|
|
|
```groovy
|
|
|
-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.**{ *;}
|
|
|
```
|
|
|
|
|
|
### 2.3 权限配置
|
|
|
|
|
|
AndroidManifest.xml中manifest节点下添加权限
|
|
|
|
|
|
```xml
|
|
|
<!--观看直播需要权限-->
|
|
|
<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节点添加
|
|
|
|
|
|
```xml
|
|
|
android:usesCleartextTraffic="true"
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
SDK3.10.0 版本之下需要在application节点下添加如下内容做兼容处理
|
|
|
|
|
|
```xml
|
|
|
<!-- 兼容 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节点添加
|
|
|
|
|
|
```groovy
|
|
|
maven {
|
|
|
http://nexus-app.bokecc.com/repository/sdk-group/
|
|
|
}
|
|
|
maven { url "http://maven.aliyun.com/nexus/content/repositories/releases"}
|
|
|
```
|
|
|
|
|
|
然后在需要引用的模块路径下的build.gradle中添加
|
|
|
|
|
|
3.x版本:
|
|
|
|
|
|
```groovy
|
|
|
dependencies {
|
|
|
implementation 'com.bokecc:dwlivesdk:${version}'
|
|
|
}
|
|
|
```
|
|
|
|
|
|
4.x版本:
|
|
|
|
|
|
```groovy
|
|
|
dependencies {
|
|
|
//docsdk为文档模块,内部依赖dwlivesdk,无需再次引入dwlivesdk
|
|
|
implementation 'com.bokecc.doc:docsdk:${version}'
|
|
|
}
|
|
|
```
|
|
|
|
|
|
说明:4.x版本将文档UI独立成模块,内部依赖同版本dwlivesdk,参考 [文档SDK接入指南](文档SDK接入指南)
|
|
|
|
|
|
### 3.2 本地集成
|
|
|
|
|
|
v3.17.6版本以下的Release包中包含离线集成的文件,下载地址为:[Live_Android_Play_SDK](https://hdgit.bokecc.com/ccvideo/Live_Android_Play_SDK/-/releases)
|
|
|
|
|
|
参考demo将libs文件夹下的jar包和so包导入到项目相应位置
|
|
|
|
|
|
v3.17.6及其后续版本不再提供本地依赖,如有需要,请联系客服
|
|
|
|
|
|
|
|
|
### 3.3 配置动态库
|
|
|
|
|
|
在app的build.gradle里面的defaultConfig中配置so库cpu平台:
|
|
|
|
|
|
```groovy
|
|
|
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方法中
|
|
|
|
|
|
@param context 上下文 Application
|
|
|
|
|
|
@param enableLog 是否开启日志输出
|
|
|
|
|
|
```java
|
|
|
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)
|
|
|
|
|
|
用户可自行根据缓存区大小来清除缓存 |