云直播SDK为客户提供了远程maven引用来方便用户解决由于lib包相同导致的冲突问题
冲突问题分类如下:
针对第一种情况,优先保留云直播libs库
针对第二种情况,根据不同情况可选择性保留一个
针对第三种情况,建议使用远程引用,删除本地引用
下面具体介绍会产生冲突的几个库
云直播中引用如下
api('com.bokecc:hdplayer:1.1.0')
如果用户集成了本公司的点播功能,可通过删除点播的引用来解决冲突
xxxxxxxxxx
// 和点播冲突的库如下,可删除该引用
com.bokecc:speedplay:2.19.3
如用户集成了三方库包含了ijkplayer,可通过exclude的方式去除三方库中的引用
以客户引用了GSYVideoPlayer为例,可通过下面的方式将三方库中ijkplayer排除掉
xxxxxxxxxx
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'
}
云直播中引用库如下
xxxxxxxxxx
implementation 'com.bokecc:drm:1.2.1'
如果集成了本公司的点播功能,可通过排除的方式去除云直播里的drm库
排除方式如下所示:
xxxxxxxxxx
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
和点播旧版冲突的包如下,
xxxxxxxxxx
// 云直播
com.bokecc:drm:1.1.0
// 云点播
com.bokecc:http:1.2.0
com.bokecc:drmv6:2.19.0
云直播引用远程库如下
xxxxxxxxxx
implementation 'io.agora.rtc:full-sdk:2.4.1'
如果集成了本公司的云课堂(小班课)功能,可通过排除云直播中的库
排除方式如下
xxxxxxxxxx
api('com.bokecc:dwlivesdk:3.14.0') {
// agora连麦库冲突 兼容小班课
exclude group: 'io.agora.rtc', module: 'full-sdk'
}
小班课中引用到该库的远程包如下
xxxxxxxxxx
com.bokecc:ClassBaseLib:6.1.10 // 里面用到了上述库
如果用户集成了agora更高版本的库,可通过排除云直播中的库
xapi('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新版本是兼容老版本的,升级之后连麦功能可正常使用
云直播引用远程库如下
xxxxxxxxxx
implementation('com.bokecc:commonLib:0.1.15') {
exclude group: "com.tencent.mars"
}
如果集成了本公司的云课堂(小班课)功能,可通过排除云直播中的库
排除方式如下
xxxxxxxxxx
api('com.bokecc:dwlivesdk:3.14.0') {
// 冲突 兼容小班课
exclude group: 'com.bokecc', module: 'commonLib'
}
云直播引用远程库如下
xxxxxxxxxx
implementation 'com.tencent.tbs.tbssdk:sdk:43903'
3.14.0版本之后用户可根据需要控制是否开启 x5内核,如果开启了x5内核,需要关注冲突的问题
如果用户集成了腾讯tbs更高版本的库 ,可根据具体场景排除相应的库
排除云直播里tbs库
xxxxxxxxxx
api('com.bokecc:dwlivesdk:3.14.0') {
// 冲突 兼容小班课
exclude group: 'com.tencent.tbs.tbssdk', module: 'sdk'
}