7_6-核心common-PPT
1 功能概述
common模块的ppt是使用mvp模式实现的,将PPT的一些UI无关的底层逻辑封装在了这个模块。
2 MVP模式
PPT模块包含了两个MVP的接口,分别是悬浮窗和PPT:
悬浮窗
/**
* date: 2020/9/16
* author: HWilliamgo
* description: 悬浮窗业务MVP
*/
public interface IPLVLiveFloatingContract {
/**
* 悬浮窗View
*/
interface IPLVLiveFloatingView {
/**
* 设置讲师信息
*
* @param nick 讲师昵称
* @param picUrl 讲师图片Url
*/
void updateTeacherInfo(String nick, String picUrl);
}
/**
* 悬浮窗业务Presenter
*/
interface IPLVLiveFloatingPresenter {
/**
* 初始化
*/
void init(IPLVLiveFloatingView view);
/**
* 销毁
*/
void destroy();
}
}PPTView
2.1 Presenter实现逻辑
2.1.1 PLVLiveFloatingPresenter
悬浮窗的Presenter主要的逻辑是,用socket管理器监听了聊天室发出的讲师信息事件,并将数据解析后更新到View接口:
2.2.2 PLVPPTPresenter
PLVPPTPresenter中实现了对PPT事件的收发操作。
监听server发来的PPT消息,解析后将消息发送到View层,由View层的webView进行处理:
当用户操作PPT画笔时,要将画笔数据发送到server(该功能暂未实现)
3 SDK核心类介绍
3.1 用PolyvSocketWrapper收发服务端PPT消息
common模块的PPT用到的SDK类是PolyvSocketWrapper,利用该类,既可以监听服务端老师发送的PPT事件,也可以主动发送PPT数据到服务端。
具体可以参考PLVLiveFloatingPresenter和PLVPPTPresenter中对该类的使用。
3.2 PPT使用的WebView
PPT使用的是SDK提供的PolyvPPTWebView类进行渲染的,对该类的使用均封装在了Scene模块的PLVLCPPTView类中,只是调用逻辑在presenter。
他有3类API:
通用对外API
直播对外API
回放对外API
Last updated
Was this helpful?