7_1-核心common-概述

6.1.1 简介

Common层(即 PLVLiveCommonModule 文件夹下全部文件),意译为“通用层”,是完全开源的。本质是对 保利威多场景SDK 的封装。

Common层目的:

  • 提供更友好统一的API

  • 实现更完整的业务功能

  • 使用更规范的封装形式。

对于企业客户,Common层,实现了大部分企业的常见功能需求,但同时不依赖也不关注特定业务UI。

6.1.2 详细解释

针对

“Common层 有什么作用?”
“Common层 是否影响我司现在或未来的自定义UI需求?”
“Common层 如何使用?”

等疑问,以下将详作解释:

在 保利威多场景 架构中,我们将 UI代码 划分为两类:

  • 第一类:具备企业元素特征的,有强烈交互特性的,有自定义倾向的UI。称为 “企业特征UI”

  • 第二类:为SDK模块提供更完整能力的,无企业元素特征的,自定义可能极小的。称为 “通用UI”

以上两类 UI代码 分别位于(请提前下载Demo源码):

  • 第一类(企业特征UI):位于上层 “Scene场景层” 文件夹下(即 云课堂场景PLVLiveCloudClassScene直播带货场景PLVLiveEcommerceScene

  • 第二类(通用UI):位于 “Common通用层” 文件夹下(即 PLVLiveCommonModule

得益于以上设计,Common 层做到不依赖也不关注“企业特征UI”,更纯净低耦合,实用特点如下:

  • Common层 可直接拖入自家项目使用,而不产生冲突;

  • 不牵涉“企业特征UI”、无UI元素特征,因此对企业自定义的UI需求不产生负担,对各类场景UI需求兼容能力好。

  • 同时 Common层 已实现了大部分企业的常见功能需求,具备 保利威 强大完整的产品能力。

保利威多场景 Common层代码,能力完整,场景兼容。 强烈推荐直接拖入 PLVLiveCommonModule 文件夹进行集成,并直接 面向 Common层的类 进行开发,而 无需面向 SDK层

体积方面,Common层全部文件总和体积,约为 950 KB,负担极小。若企业有更极致的体积需求,可进一步与我们联系

6.1.3 如何使用Common层

必需的集成步骤 —— 已集成 保利威多场景SDK 的前提下,直接将Demo源码中 PLVLiveCommonModule 文件夹,拖入自家项目即可。Xcode 弹窗选项中,Destination 选择 Copy items if neededAdded folders 选择 Create gourps

  • 若企业 选择 使用 保利威的场景UI源码,实现快速上线直播能力,保持各端视觉效果统一,则请在Demo源码中,将云课堂场景PLVLiveCloudClassScene直播带货场景PLVLiveEcommerceScene 与上述步骤一样,也直接拖入自家项目即可。

  • 若企业 选择 不使用 保利威的场景UI源码,计划自行实现UI层代码,则参考以下:

 以 “创建一个播放器,进行直播观看” 为例:
 
(1)面向Common层开发,找到 PLVLiveCommonModule - Modules - Player 文件夹下的 PLVPlayerPresenter.h 类文件  
(2)简单阅读 PLVPlayerPresenter.h 的注释说明、使用演示  
(3)在自家控制器中,引入 #import "PLVPlayerPresenter.h"  
(4)在自家控制器中,创建 PLVPlayerPresenter` 作为一个播放器对象 (注:大部分Presenter 内部均依赖于 PLVRoomData 房间配置数据,请提前参 PLVRoomLoginClient.h 了解如何配置房间数据)  
(5)根据自家业务需求,面向 PLVPlayerPresenter.h 使用对外暴露的方法 和 Delegate回调。  

按以上步骤,即可快速集成拥有完整能力的 保利威播放器,进行直播观看。
其他 连麦功能、聊天功能、PPT功能、互动功能等,均可按此步骤进行快速集成。
(注:不建议直接修改 Presenter.m 内部代码,否则将可能影响后续升级的便捷性。有特殊需求的,需要修改的,可直接与我们技术支持联系,我们将针对性提供解决方案)

6.1.4 Common层文件夹目录结构

PLVLiveCommonModule 文件夹的目录结构如下:

.
└── PLVLiveCommonModule
    └── GeneralUI 提供了一些多场景通用的 UI 控件,Modules 文件夹提供了各个功能的基础模块:
    	├── PLVAdvView
    	├── LogoView
    	├── PLVAlbum
    	├── PLVEmoticons
    	├── PLVKeyboard
    	├── PLVMarquee
    	├── PLVPageController
    	├── PLVPhotoBrowser
    	├── PLVProgressSlider
    	└── ZJZDanMu
    └── Modules
    	├── Room 提供直播间的登录辅助类 PLVRoomLoginClient 和直播间数据管理器类 PLVRoomDataManager
    	├── PPT  提供通用的 PPT 视图 PLVPPTView
    	├── Chatroom 提供了聊天室模块的 presenter 类 PLVChatroomPresenter
    	├── Interact 提供各个互动功能的封装类和支持各种互动类型的互动视图 PLVInteractView
    	├── LinkMic  提供了连麦模块的 presenter 类 PLVLinkMicPresenter
    	└── Player   提供了播放器模块的 presenter 类 PLVPlayerPresenter

Last updated