关于如何接入SDK离线回放功能

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

1. 离线回放核心功能

1.1 离线回放数据的下载和解压

相关下载CCR的逻辑可以自行实现也可以参照Demo.

解压逻辑请参照demo的localreplay功能,特别说明:

  1. 解压时调用的方法为SupZipTool.decompressZipDec(String inputUrl, String outputUrl)。
  2. 解压目录为必需的参数。
  3. 使用SupZipTool时需要导入so文件:libsupzip.so。

1.2 离线回放播放视频和文档

1.2.1 主动调用api

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

方法说明
setReplayParams(DWLiveLocalReplayListener replayListener, String dir)设置回调、解压路径
setReplayParams(DWLiveLocalReplayListener replayListener, DocView docView, String dir)设置回调、文档、解压路径
setReplayPlayerListener(ReplayPlayerListener replayPlayerListener)设置播放器回调
start(Context context)开始播放
stop()停止播放
pause()暂停播放
onDestroy()释放资源

视频相关API

方法说明
setSpeed(float speed)设置倍速
setVideoType(CCBasePlayer.VideoType type)设置视频裁剪模式
seekTo(long progress)拖拽
getDuration()获取视频时长
getCurrentPosition()获取当前播放进度
isInPlaybackState()是否是可播放状态
isPlaying()是否是播放中
getPlayerStatus()获取当前的播放状态
getSpeed()获取当前的倍速

文档相关API

方法说明
setDocScaleType(DocView.ScaleType type)设置文档拉伸模式

 

1.2.2 回调事件api

回调事件同在线回放

1.2.3 关键代码示例

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

初始化播放器并设置播放参数

播放器回调

1.2.4 集成说明

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

2. 离线回放其他功能

功能使用时相关的核心类:DWLiveLocalReplayListener(离线回放回调接口类),DWLiveLocalReplay(离线回放核心类)。

2.1 聊天功能

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

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

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

获取自定义表情的相关方法如下(SDK版本>=4.9.0):

方法说明
boolean isOpenCustomEmoji()获取是否开启自定义表情功能
boolean isCustomEmojiDownloadComplete()自定义表情是否下载完成
String getEmojiByName(String name)通过表情名获取单个表情,返回表情本地路径
ArrayList<CustomEmoji> getCustomEmojis()获取所有的自定义表情

 

2.2 问答功能

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

方法说明
onQuestionAnswer(TreeSet qaMsgs)收到回放问答信息

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

问答支持图片功能(sdk版本号>=4.9.0)

 

2.3 广播功能

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

方法说明
onBroadCastMessage(ArrayList broadCastMsgList)收到广播信息

返回对象ReplayBroadCastMsg属性信息如下

2.4 回放页面信息

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

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

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