|
|
|
## 云直播lib包冲突问题自查手册
|
|
|
|
|
|
|
|
|
|
|
|
- [云直播lib包冲突问题自查手册](#云直播lib包冲突问题自查手册)
|
|
|
|
- [一、说明](#一说明)
|
|
|
|
- [二、具体冲突解决方案](#二具体冲突解决方案)
|
|
|
|
- [1、hdplayer](#1hdplayer)
|
|
|
|
- [2、drm](#2drm)
|
|
|
|
- [3、io.agora.rtc](#3ioagorartc)
|
|
|
|
- [4、commonLib](#4commonlib)
|
|
|
|
- [5、腾讯tbs](#5腾讯tbs)
|
|
|
|
- [6、云课堂](#6云课堂)
|
|
|
|
|
|
|
|
|
|
|
|
## 一、说明
|
|
|
|
云直播SDK为客户提供了远程maven引用来方便用户解决由于lib包相同导致的冲突问题
|
|
|
|
|
|
|
|
冲突问题分类如下:
|
|
|
|
|
|
|
|
1. 云直播lib库和本公司其他产品libs库的冲突问题
|
|
|
|
2. 云直播lib库和客户引用的三方库的冲突问题
|
|
|
|
3. 远程和本地冲突的问题
|
|
|
|
|
|
|
|
针对第一种情况,优先保留云直播libs库
|
|
|
|
|
|
|
|
针对第二种情况,根据不同情况可选择性保留一个
|
|
|
|
|
|
|
|
针对第三种情况,建议使用远程引用,删除本地引用
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 二、具体冲突解决方案
|
|
|
|
|
|
|
|
下面具体介绍会产生冲突的几个库
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 1、hdplayer
|
|
|
|
|
|
|
|
云直播中引用如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:hdplayer:1.1.0')
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如果用户集成了本公司的点播功能**,可通过删除点播的引用来解决冲突
|
|
|
|
|
|
|
|
```java
|
|
|
|
// 和点播冲突的库如下,可删除该引用
|
|
|
|
com.bokecc:speedplay:2.19.3
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如用户集成了三方库包含了ijkplayer**,可通过exclude的方式去除三方库中的引用
|
|
|
|
|
|
|
|
以客户引用了GSYVideoPlayer为例,可通过下面的方式将三方库中ijkplayer排除掉
|
|
|
|
|
|
|
|
```java
|
|
|
|
api ('com.shuyu:GSYVideoPlayer:7.1.4'){
|
|
|
|
exclude group: 'com.shuyu', module: 'gsyVideoPlayer-java'
|
|
|
|
exclude group: 'com.shuyu', module: 'gsyVideoPlayer-armv7a'
|
|
|
|
exclude group: 'com.shuyu', module: 'gsyVideoPlayer-arm64'
|
|
|
|
exclude group: 'com.shuyu', module: 'gsyVideoPlayer-x86'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 2、drm
|
|
|
|
|
|
|
|
云直播中引用库如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
implementation 'com.bokecc:drm:1.2.1'
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如果集成了本公司的点播功能**,可通过排除的方式去除云直播里的drm库
|
|
|
|
|
|
|
|
排除方式如下所示:
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:dwlivesdk:3.14.0') {
|
|
|
|
exclude group: 'com.bokecc', module: 'drm'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
也可删除点播库里相同的引用,云直播不做任何处理
|
|
|
|
|
|
|
|
- **针对旧版本的兼容**
|
|
|
|
|
|
|
|
由于旧版点播的drm库使用到了org.apache.http.legacy包, 如用户使用的三方库中包含org.apache.http.legacy,和项目中的com.bokecc:http出现冲突,需要去除项目中使用到的httplib或者org.apache.http.legacy.jar
|
|
|
|
|
|
|
|
和点播旧版冲突的包如下,
|
|
|
|
|
|
|
|
```java
|
|
|
|
// 云直播
|
|
|
|
com.bokecc:drm:1.1.0
|
|
|
|
// 云点播
|
|
|
|
com.bokecc:http:1.2.0
|
|
|
|
com.bokecc:drmv6:2.19.0
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 3、io.agora.rtc
|
|
|
|
|
|
|
|
云直播引用远程库如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
implementation 'io.agora.rtc:full-sdk:2.4.1'
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如果集成了本公司的云课堂(小班课)功能**,可通过排除云直播中的库
|
|
|
|
|
|
|
|
排除方式如下
|
|
|
|
|
|
|
|
```groovy
|
|
|
|
api('com.bokecc:dwlivesdk:3.14.0') {
|
|
|
|
// agora连麦库冲突 兼容小班课
|
|
|
|
exclude group: 'io.agora.rtc', module: 'full-sdk'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
小班课中引用到该库的远程包如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
com.bokecc:ClassBaseLib:6.1.10 // 里面用到了上述库
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **如果用户集成了agora更高版本的库**,可通过排除云直播中的库
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:dwlivesdk:3.14.0') {
|
|
|
|
// agora连麦库冲突 兼容小班课
|
|
|
|
exclude group: 'io.agora.rtc', module: 'full-sdk'
|
|
|
|
}
|
|
|
|
|
|
|
|
// 引用更高版本的库
|
|
|
|
implementation 'io.agora.rtc:full-sdk:x.y.z'
|
|
|
|
```
|
|
|
|
|
|
|
|
目前云直播只使用到了该库的部分功能,经测试agora新版本是兼容老版本的,升级之后连麦功能可正常使用
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 4、commonLib
|
|
|
|
|
|
|
|
云直播引用远程库如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
implementation('com.bokecc:commonLib:0.1.15') {
|
|
|
|
exclude group: "com.tencent.mars"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如果集成了本公司的云课堂(小班课)功能**,可通过排除云直播中的库
|
|
|
|
|
|
|
|
排除方式如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:dwlivesdk:3.14.0') {
|
|
|
|
// 冲突 兼容小班课
|
|
|
|
exclude group: 'com.bokecc', module: 'commonLib'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### 5、腾讯tbs
|
|
|
|
|
|
|
|
云直播引用远程库如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
implementation 'com.tencent.tbs.tbssdk:sdk:43903'
|
|
|
|
```
|
|
|
|
|
|
|
|
3.14.0版本之后用户可根据需要控制是否开启 x5内核,如果开启了x5内核,需要关注冲突的问题
|
|
|
|
|
|
|
|
- **如果用户集成了腾讯tbs更高版本的库** ,可根据具体场景排除相应的库
|
|
|
|
|
|
|
|
排除云直播里tbs库
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:dwlivesdk:3.14.0') {
|
|
|
|
// 冲突 兼容小班课
|
|
|
|
exclude group: 'com.tencent.tbs.tbssdk', module: 'sdk'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 6、云课堂
|
|
|
|
|
|
|
|
云直播引用远程库如下
|
|
|
|
|
|
|
|
```java
|
|
|
|
implementation ('com.bokecc:ClassBaseLib:last-version')
|
|
|
|
```
|
|
|
|
|
|
|
|
- **如果用户同时集成了云课堂**,可根据具体场景排除相应的库
|
|
|
|
|
|
|
|
排除云直播里云课堂库
|
|
|
|
|
|
|
|
```java
|
|
|
|
api('com.bokecc:dwlivesdk:4.x.x') {
|
|
|
|
// 冲突 兼容云课堂
|
|
|
|
exclude group: 'com.bokecc', module: 'ClassBaseLib'
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|