保利威文档中心

幫助中心

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 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
联系客服,在线咨询