关于如何接入SDK回放功能

本文主要介绍如何接入SDK回放功能,包括两大部分,核心功能和其他功能

1. 回放核心功能

1.1 回放登录

1.1.1 主动调用api

回放登录需要主动调用方法在DWLiveReplay.java(DWLiveReplay为单例)中,如下

方法说明
getInstance()获取DWLiveReplay单例
setLoginParams(DWLiveLoginListener dwLiveLoginListener, LoginInfo loginInfo)(过时) 设置回放登录参数
startLogin()(过时) 开始登录
startLogin(ReplayLoginInfo, final DWLiveReplayLoginListener)(>=3.14.0)设置登录参数并开始登录

登录所需参数ReplayLoginInfo如下

1.1.2 回调事件api

DWLiveReplayLoginListener

方法说明
onException(DWLiveException exception)登录失败
onLogin(TemplateInfo templateInfo)登录成功
onLogin(TemplateInfo templateInfo, Marquee marquee)登录成功 附带跑马灯信息Marquee(重写方法)
onLogin(TemplateInfo templateInfo, Viewer viewer)登录成功 附个人信息Viewer(重写方法)

返回信息同直播相同,登录成功可监听onLogin任意一个互调

onLogin(TemplateInfo templateInfo, Marquee marquee)为定制方法,如需使用到界面跑马灯可单独实现该回调

1.2 回放播放视频和文档

1.2.1 主动调用api

回放核心类代码在DWLiveReplay.java(DWLiveReplay为单例)如下

方法说明
setReplayListener(DWLiveReplayListener replayListener)设置在线回放回调
setReplayPlayerListener(ReplayPlayerListener replayPlayerListener)设置播放器回调
setReplayDocView(DocView docView)设置文档
start(Context context)开始播放
stop()停止播放
pause()暂停播放
resume()恢复播放
onDestroy()释放资源

视频相关的API

主动设置相关

方法说明
setLastPosition(long position)设置开始播放位置,需在start之前调用
retryReplay(long position, boolean updateStream)重试播放
positon:播放位置updateStream更换流地址
setSpeed(float speed)设置播放速率
changeLineWithPlayParameter(ReplayLineConfig ,ReplayLineSwitchListener)(过时) 切换线路
changeLineWithNum(int line, ReplayLineSwitchListener changeLineCallback)(过时) 切换线路
changeLine(int lineIndex, ReplayChangeSourceListener changeCallBack)(>=3.13.0)切换线路
changeQuality(int quality, ReplayChangeSourceListener)(>=3.13.0)切换清晰度
changePlayMode(PlayMode, ReplayChangeSourceListener )(>=3.13.0)切换音视频播放模式
setVideoType(CCBasePlayer.VideoType videoType)设置视频视图显示类型(只有多人连麦的低延迟模式有效)
disableVideo()设置默认禁用视频(start前设置)

主动获取相关

方法说明
getDuration()获取视频时长
getSpeed()获取当前的倍速
getPlayStatus()获取当前的播放状态
getCurrentPosition()获取当前的播放进度
isPlaying()是否是播放中
changeLine(int lineIndex, ReplayChangeSourceListener changeCallBack)(>=3.13.0)切换线路
changeQuality(int quality, ReplayChangeSourceListener)(>=3.13.0)切换清晰度
changePlayMode(PlayMode, ReplayChangeSourceListener )(>=3.13.0)切换音视频播放模式
setVideoType(CCBasePlayer.VideoType videoType)设置视频视图显示类型(只有多人连麦的低延迟模式有效)
disableVideo()设置默认禁用视频(start前设置)

文档相关的API

主动设置相关

方法说明
setDocScaleType(DocView.ScaleType type)设置文档拉伸模式
changeDocBackgroundColor(String color)更改文档空白区颜色值

主动获取相关

方法说明
isDocSupport()是否支持文档

1.2.2 回调事件api

回调事件同直播

1.2.3 关键代码示例

 

设置文档展示的控件布局:

设置播放参数

播放器回调

1.2.4 集成说明

完成上面的步骤后,基本上我们就能够观看到直播回放的视频画面和文档画面了,也就基本完成了获得场景视频直播回放的核心功能的集成,即观看回放视频和观看回放文档的功能。

2. 回放其他功能

功能使用时相关的核心类:DWLiveReplayListener(回放回调接口类),DWLiveReplay(回放核心类)。

2.1 聊天功能

回放的聊天功能只包括公共聊天内容,此功能为方法回调功能,相关类DWLiveReplayListener,相关方法如下:

方法说明
onChatMessage(TreeSet replayChatMsgs)收到回放聊天信息

其中回调回来的对象ReplayChatMsg属性信息如下

主动获取聊天数据 相关类DWLiveReplay

方法说明
getAllChats(final BaseFunction<TreeSet> func)获取回放聊天信息(需在播放成功之后调用)

2.2 问答功能

回放的问答的功能包括已公开回答问答和已发布的答案,此功能为方法回调功能,相关类DWLiveReplayListener相关方法如下:

方法说明
onQuestionAnswer(TreeSet qaMsgs)获取回放问答信息

返回对象ReplayQAMsg包含问题和回答列表,如何操作该类消息,请查看demo

主动获取问答数据 相关类DWLiveReplay

方法说明
getAllQAs(final BaseFunction<TreeSet> func)获取所有的问答数据

其中 ReplayQuestionMsg 数据中包含的字段信息如下:

其中 ReplayAnswerMsg 数据中包含的字段信息如下:

2.3 广播功能

回放的广播的功能是直播时发布的广播信息列表,此功能为方法回调功能,相关类DWLiveReplayListener,相关方法如下:

方法说明
onBroadCastMessage(ArrayList broadCastMsgList)获取广播信息

返回对象ReplayBroadCastMsg属性信息如下

主动获取广播数据 相关类DWLiveReplay

方法说明
getAllBoardCasts(final BaseFunction<ArrayList> func)获取所有的广播数据

2.4 回放页面信息

回放页面信息是通过回调返回给上层调用,此功能为回调功能,相关类是DWLiveReplayListener,相关方法如下

方法说明
onPageInfoList(ArrayList infoList)回放页面信息
onPageChange(String docId, String docName, int docWidth ,int docHeight, int pageNum, int docTotalPage);回调当前翻页的信息

返回列表对象ReplayPageInfo属性信息如下:

2.5 切换线路功能 (2021年10月08日之后不再进行维护)

由于该方法不兼容清晰度的切换,故废弃该方法,使用2.6清晰度切换2.7线路切换替代

回放可根据返回的线路索引进行线路切换

主动调用方法

方法说明
changeLineWithPlayParameter(ReplayLineConfig config, ReplayLineSwitchListener callback)切换音视频线路、清晰度方法,已过时

监听回调方法在DWLiveReplayListener中

方法说明
numberOfReceivedLines(int lines)回放线路回调,已过时
numberOfReceivedLinesWithVideoAndAudio(List videoLines, ReplayAudioLineParams audioLines)回放线路 清晰度回调,已过时

参数属性信息如下:

 

2.6 清晰度切换

回放可根据返回的清晰度列表进行清晰度切换

主动调用方法

方法说明
changeQuality(int quality, ReplayChangeSourceListener changeCallBack)切换清晰度

监听回调方法在DWLiveReplayListener中,该api会存在多次回调 如:切换清晰度、调用开始播放api、从音频切回到视频模式

方法说明
onHDReceivedVideoQuality(List videoQuality, ReplayQualityinfo currentQuality)回调清晰度列表和当前播放的清晰度

主动调用方法中ReplayChangeSourceListener类说明如下

回调方法中ReplayQualityinfo类属性信息如下:

 

2.7 线路切换

回放可根据返回的线路列表进行线路切换

主动调用方法

方法说明
changeLine(int index,ReplayChangeSourceListener changeCallBack)切换线路

监听回调方法在DWLiveReplayListener中,该api会存在多次回调 如:切换清晰度、调用开始播放api、音频/视频模式切换

方法说明
onHDReceivedVideoAudioLines(List lines, int currentLineIndex)回调清晰度列表和当前播放的清晰度

主动调用方法中ReplayChangeSourceListener类说明如下

回调方法中ReplayLineInfo参数属性信息如下:

2.8 音视频播放模式切换

回放可切换播放模式

主动调用方法

方法说明
changePlayMode(PlayMode playMode,ReplayChangeSourceListener changeCallBack)切换播放模式

监听回调方法在DWLiveReplayListener中, 该api会存在多次回调 如:调用开始播放api、音频/视频模式切换

方法说明
onHDAudioMode(Audio hasAudio)是否开启音频模式

主动调用方法中PlayMode 参数属性信息如下:

ReplayChangeSourceListener详细说明如下

回调方法中Audio类参数信息如下:

2.9 回放打点功能

回放打点功能,可根据返回的打点数据展示打点数据,界面显示请参考demo

DWLiveReplayListener类监听回调方法

方法说明
onHDReplayDotList(List dotList)回放打点数据列表

其中ReplayDot类属性如下

3.0 回放随堂测功能

回放随堂测功能

DWLiveReplay类主动获取

方法说明
getAllPractices(final BaseFunction<ArrayList> func)回放随堂测数据列表

其中ReplayPracticeInfo类属性如下

3.1 回放试看

回放试看功能

DWLiveReplayListener类监听回调方法

方法说明
onTrialDuration(int trialDuration)回放试看时间点(trialDuration单位为秒)