7_1-核心common-概述
更新時間:2023-04-27 09:43:40
關於 保利威多場景 Common層
6.1.1 簡介
Common 層(即 PLVLiveCommonModule 資料夾下所有檔案),意譯為「通用層」,是完全開源的。本質上是對保利威多場景 SDK 的封裝。
Common 層目的:
- 提供更友善統一的 API
- 實現更完整的業務功能
- 使用更規範的封裝形式。
對於企業客戶,Common 層實現了大部分企業的常見功能需求,但同時不依賴也不關注特定業務 UI。
6.1.2 詳細說明
針對
“Common层 有什么作用?”
“Common层 是否影响我司现在或未来的自定义UI需求?”
“Common层 如何使用?”
等疑問,以下將詳細說明:
在保利威多場景架構中,我們將 UI代码 劃分為兩類:
- 第一類:具備企業元素特徵、有強烈互動特性、有自訂傾向的 UI。稱為 「企業特徵 UI」
- 第二類:為 SDK 模組提供更完整能力、無企業元素特徵、自訂可能性極小的 UI。稱為 「通用 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 needed,Added 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
