目录Release2.9.0 1. 升级需要替换的库2. 注意事项3. 新版本改动及特性4. 更新日志Release2.8.0 1. 升级需要替换的库2. 注意事项3. 新版本改动及特性4. 更新日志Release2.7.1 1. 升级需要替换的库2. 注意事项3. 新版本改动及特性4. 更新日志Release2.7.0 1. 升级需要替换的库2. 注意事项3. SDK 改动4. 更新日志Release2.6.4 1. 升级需要替换的库2. 注意事项3. SDK 改动4. 更新日志Release2.6.31. 升级需要替换的库2. 注意事项3. SDK 改动4. 更新日志Release2.6.21. 升级需要替换的库2. 注意事项3. SDK 改动3. 更新日志Release2.6.11. 升级需要替换的库2. 注意事项3. SDK 改动3. 更新日志Release2.6.0 1. 升级需要替换的库2. 注意事项3. SDK 改动4. 更新日志
下面说明一下之前的CC直播SDK升级到2.9.0版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.9.0版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
新增so包
libsupzip.so (使用SDK提供的解压CCR文件的方法需导入此so包)
xxxxxxxxxx
本版本直播观看和在线观看SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,如果是2.6.0之前的版本升级到本版本的话需要稍微调整一下相关配置。
本版本离线观看的SDK和2.8.0版本之前比,只提供了两个cpu平台的so文件:armeabi-v7a、x86,2.8.0版本是三个平台的,升级时需要稍微调整一下相关配置。
SDK 网络请求全部使用https
本版本开始所有的数据请求方式全部默认设置为https,不再接受设置的参数。 本版本DWLive.setSecure(boolean isSecure)为过时弃用方法。 本版本DWLiveReplay.setSecure(boolean isSecure)为过时弃用方法。
直播观看用户踢出逻辑增加踢出类型参数
本版本对直播观看用户踢出逻辑进行了优化,细化了踢出方法,改动后的踢出回调方法没变,增加类型参数:
xxxxxxxxxx
/**
* 用户被踢出房间的回调
* @param type 踢出房间的类型<br>
* 10:在允许重复登录前提下,后进入者会登录会踢出先前登录者<br>
* 20:讲师、助教、主持人通过页面踢出按钮踢出用户
*/
public void onKickOut(int type)
直播观看新增数据源切换回调方法
本版本对直播观看的PC端数据源切换事件做了回调通知方法,新增方法如下:
xxxxxxxxxx
/**
* 切换数据源
* @param switchInfo 切换数据源信息 <br>
* 注:<br>
* 1. 返回数据格式为:{"source_type":"10","source_type_desc":"数据源类型:摄像头打开"} <br>
* 2. 目前此回调只会在有文档的直播间模版下才会触发
*/
public void onSwitchSource(String switchInfo);
以下是数据格式中不同内容对应的情况:
数据源类型 | 数据源值 | 数据源类型描述 | 数据源类型描述值 |
---|---|---|---|
source_type | 0 | source_type_desc | 数据源类型:默认值, |
source_type | 10 | source_type_desc | 数据源类型:摄像头打开 |
source_type | 11 | source_type_desc | 数据源类型:摄像头关闭 |
source_type | 20 | source_type_desc | 数据源类型:图片 |
source_type | 30 | source_type_desc | 数据源类型:插播视频 |
source_type | 40 | source_type_desc | 数据源类型:区域捕获 |
source_type | 50 | source_type_desc | 数据源类型:桌面共享 |
source_type | 60 | source_type_desc | 数据源类型:自定义场景 |
注意:
xxxxxxxxxx
1. 在直播未开始、非文档直播间或使用低版本客户端直播时会返回source_type 为 0的数据;
2. 该功能仅限文档直播间使用,PC主播客户端需使用4.9.0以上版本;
优化直播观看播放模式切换逻辑
目前直播观看SDK在进行音视频播放模式切换时,有极小概率出现切换回视频时出现黑屏有声音的情况,本版本针对此问题进行了优化: 切换播放模式的方法增加参数:Surface surface ,下面是更改后的切换逻辑:
xxxxxxxxxx
/**
* 切换当前播放模式,会重新加载视频
* @param playMode 播放模式
*/
public void changePlayMode(Surface surface, PlayMode playMode)
下面说明一下之前的CC直播SDK升级到2.8.0版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.8.0版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
新增so包
libsupzip.so (使用SDK提供的解压CCR文件的方法需导入此so包)
本版本直播观看和在线观看SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,如果是2.6.0之前的版本升级到本版本的话需要稍微调整一下相关配置。 本版本离线观看的SDK和2.8.0版本之前比,只提供了两个cpu平台的so文件:armeabi-v7a、x86,2.8.0版本是三个平台的,升级时需要稍微调整一下相关配置。
直播SDK增加初始化SDK的方法
SDK增加初始化SDK的方法,需要在Application里面调用
xxxxxxxxxx
DWLiveEngine.init(this)
直播观看SDK支持文档的自由切换
SDK的DWLive提供了主动调用的方法:getRoomDocInfos、changeDocModeType 和 changePageTo。 其中getRoomDocInfos用来获取当前直播间所有的文档信息,changeDocModeType用来改变当前文档控件的展示模式,changePageTo用于跳转到指定文档的制定页数。 新功能在demo上做了相应的基本实现,可用于参考,具体位置为PcLivePlayActivity的showDocChangeDialog方法。
离线回放SDK解压加密的CCR并播放
SDK提供解压方法:SupZipTool.decompressZipDec(需导入libsupzip.so包)用于解压加密CCR,Demo层的调用位置为:UnZiper.unZipFile()方法,可以参考此方法进行实现。 注:若使用离线加密功能,必须使用此方法进行解压,否则会导致无法播放。
直播观看和回放Demo兼容Android 9.0
如需兼容Android 9.0 需要在Demo 的AndroidManifest.xml里面增加如下配置:
xxxxxxxxxx
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
离线回放支持获取回放录制的开始和结束时间
相关方法为:DWLiveLocalReplay.getReplayLiveInfo。
下面说明一下之前的CC直播SDK升级到2.7.1版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.7.1版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
xxxxxxxxxx
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
修复bug,优化了SDK的部分逻辑
这个版本对SDK的一些bug进行了处理,并且优化了部分相关逻辑,提供的接口和方法和2.7.0对比无变化。
优化Demo代码
这个版本对Demo的直播观看页和在线回放的代码做了整理和优化,提高可读性,提高对接效率。
下面说明一下之前的CC直播SDK升级到2.7.0版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.7.0版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换 )
xxxxxxxxxx
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
文档模块优化
文档模块的改动是针对直播观看和在线回放的,替换jar包后基本的使用方式不变。 同时新增特性:适合屏幕和适合窗口两种模式。 适合屏幕就是原先的文档展示方式。 适合宽度则是将文档的宽度自动适配控件的宽度。如果文档竖向长度比较长的话,可以上下滑动进行观看和使用。 目前设置这两个特性的位置为:后台—>直播间—>编辑—>高级选项—>观看端设置—>文档显示模式
对应Demo改动:
主要改动的地方是文档全屏的触发机制进行了修改, 改为对DocView设置DocView.TouchEventListener,并重写onTouchEvent方法,方法内部处理的方式同View.onTouchEvent。
问卷统计
对应SDK改动:
SDK问卷统计功能为新增回调onQuestionnaireStatis。
对应Demo改动:
在Demo中实现了onQuestionnaireStatis回调(注意:需要结合直播客户端4.9.0版本使用)
封禁 & 解封禁
对应SDK改动
对应Demo改动
在Demo中实现了onBanStream回调和onUnbanStream回调。
文档全屏的逻辑调整
结合2.1来做的调整,主要改动的地方是文档全屏的触发机制进行了修改。 目前的机制为对DocView设置DocView.TouchEventListener,并重写onTouchEvent方法,方法内部处理的方式同View.onTouchEvent。 具体逻辑可以参照PcLivePlayActivity 和 ReplayActivity 的 initViewPager()的方法里面的实现逻辑。
下面说明一下之前的CC直播SDK升级到2.6.4版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.6.4版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
xxxxxxxxxx
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
增加直播观看增加历史广播信息回调
在2.6.1版本,我们的SDK增加了获取直播的历史广播的功能,通过onBroadcastMsg(String msg)回调。 在2.6.4版本,我们将历史广播的回调单独提出来,增加onHistoryBroadcastMsg(ArrayList msgs)回调,其中BroadCastMsg的字段为:content (广播内容) 和 time (广播时间),onBroadcastMsg(String msg)只用于收到实时广播信息。
下面说明一下之前的CC直播SDK升级到2.6.3版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.6.3版本,只需要替换dwlivesdk.jar。
如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
xxxxxxxxxx
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
优化回放文档加载速度
之前的版本的SDK在请求超大回放数据量的时候,存在视频显示后几秒文档数据才展示出来的问题,本版本针对此问题,进行了优化,加快了文档内容的展示速度。
支持获取当前直播的信息
直播观看和在线回放支持获取当前直播的信息,相关类为:LiveInfo、ReplayLiveInfo。 使用方式为:DWLive.getLiveInfo()、DWLiveReplay.getReplayLiveInfo()。 此功能Demo也在demo中使用,相关代码,见demo直播和回放的登录页代码。
直播登录增加选填参数viewerCustomInfo
LoginInfo 增加选填参数字段:viewerCustomInfo viewercustominfo json格式字符串,可选,自定义用户信息,该信息会记录在用户访问记录中,用于统计分析使用(长度不能超过1000个字符,若直播间启用接口验证则该参数无效) 格式如下:
xxxxxxxxxx
{"exportInfos": [ {"key": "城市", "value": "北京"}, {"key": "姓名", "value": "哈哈"}]}
下面说明一下之前的CC直播SDK升级到2.6.2版本的时候,需要注意的事情
如果是2.6.0及以后的版本升级到2.6.2版本,只需要替换dwlivesdk.jar。如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
xxxxxxxxxx
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,2.6.0版本之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
优化切换音频模式的响应速度
之前版本的SDK在视频切换音频的时候,切换的速度比较慢,本版本针对此问题进行了优化,加快了切换音频模式的响应速度。
修复文档模块的bug
修复了回放时文档模块的bug,提高了SDK的稳定性。
下面说明一下之前的CC直播SDK升级到2.6.1版本的时候,需要注意的事情
如果是2.6.0版本升级到2.6.1版本,只需要替换dwlivesdk.jar。如果是2.6.0之前的版本,就需要做以下操作:
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
直播登录时补推最后一条广播消息
此功能类似于聊天数据补推,现在也加上了广播消息的补推。回调方法为:onBroadcastMsg,同正常接收广播的方法相同。
回放增加直播过程中的广播信息的回调
回放广播信息的类:ReplayBroadCastMsg,相关字段:content(广播内容)、time(发布时间)。 在线回放的广播信息回调:
xxxxxxxxxx
/**
* 广播信息
* @param broadCastMsgList 广播信息列表
*/
public void onBroadCastMessage(ArrayList<ReplayBroadCastMsg> broadCastMsgList);
离线回放的广播信息回调:
xxxxxxxxxx
/**
* 广播信息
* @param broadCastMsgList 广播信息列表
*/
public void onBroadCastMessage(ArrayList<ReplayBroadCastMsg> broadCastMsgList);
直播 + 在线回放 + 离线回放 增加当前翻页信息的回调
回调方法都为:
xxxxxxxxxx
/**
* 回调当前翻页的信息<br/>
* 注意:<br/>
* 白板docTotalPage一直为0,pageNum从1开始<br/>
* 其他文档docTotalPage为正常页数,pageNum从0开始
*
* @param docId 文档Id
* @param docName 文档名称
* @param pageNum 当前页码
* @param docTotalPage 当前文档总共的页数
*/
public void onPageChange(String docId, String docName, int pageNum, int docTotalPage);
观看直播时,支持修改昵称
修改昵称的方法为主动调用方法:
xxxxxxxxxx
DWLive.changeNickName(String nickName)。
下面说明一下2.6.0版本之前的CC直播SDK升级到2.6.0版本的时候,需要注意的事情
替换jar包
dwlivesdk.jar (必须替换) libjingle_peerconnection.jar (必须替换)
替换so包
libijkffmpeg.so (必须替换) libijkplayer.so (必须替换) libijksdl.so (必须替换) libjingle_peerconnection_so.so (必须替换)
本版本SDK只提供了三个cpu平台的so文件:arm64-v8a、armeabi-v7a、x86,之前提供的都是四个平台的,这块需要集成的客户稍微调整一下自己的配置,根据自己的项目的配置。
直播登录方式的改动
登录直播间时设置参数的方法DWLive.setDWLiveLoginParams改为对象化了,在使用时需要创建LoginInfo对象,并将登录的参数设置进去,其实参数还是和之前一样,只不过承载这些参数的方式为对象化了。 下面是目前直播登录的示例代码:
xxxxxxxxxx
// 创建登录信息
LoginInfo loginInfo = new LoginInfo();
loginInfo.setRoomId(roomId);
loginInfo.setUserId(userId);
loginInfo.setViewerName(viewerName);
loginInfo.setViewerToken(viewerToken);
DWLive.getInstance().setDWLiveLoginParams(new DWLiveLoginListener() {
public void onLogin(TemplateInfo templateInfo, Viewer viewer, RoomInfo roomInfo, PublishInfo publishInfo) {
//TODO 登录成功了,跳转到直播播放页面
}
public void onException(final DWLiveException e) {
// TODO 登录失败,添加告知用户登录失败的逻辑
}
}, loginInfo); // 设置登录直播间的参数
DWLive.getInstance().startLogin(); // 执行登录操作
在线回放改动
登录回放直播间时设置参数的方法DWLiveReplay.setLoginParams改为对象化了,在使用时需要创建ReplayLoginInfo对象,并将登录的参数设置进去,其实参数还是和之前一样,只不过承载这些参数的方式为对象化了。 下面是目前直播回放登录的实例代码:
xxxxxxxxxx
ReplayLoginInfo replayLoginInfo = new ReplayLoginInfo(); // 创建登录信息对象
replayLoginInfo.setUserId(userId); // 设置用户Id
replayLoginInfo.setRoomId(roomId); // 设置直播间Id
replayLoginInfo.setLiveId(liveId); // 设置直播Id
replayLoginInfo.setRecordId(recordId); // 设置回放Id
replayLoginInfo.setViewerName(viewerName); // 设置观众名称
replayLoginInfo.setViewerToken(viewerToken); // 设置观众密码
// 设置登录参数
DWLiveReplay.getInstance().setLoginParams(new DWLiveReplayLoginListener(){
public void onException(final DWLiveException exception) {
// TODO 登录失败,添加告知用户登录失败的逻辑
}
public void onLogin(TemplateInfo templateInfo) {
// TODO 登录成功了,跳转到直播播放页面
}
}, replayLoginInfo);
DWLiveReplay.getInstance().startLogin(); // 执行登录回放直播间操作
设置网络请求Https方式变更
之前的逻辑为在设置登录参数的时候,可以设置https的请求方式,目前设置方式设置为setSecure。