保利威文档中心

幫助中心

7_3-核心common-数据

更新時間:2023-04-17 15:27:57

1 概述

資料模組位於polyvLiveCommonModul模組的data包下,資料模組包含的資料有:配置資料、http資料、業務模組資料等。這裡將這些資料統一稱為直播間資料,並使用PLVLiveRoomDataManager管理它們。

2 核心類別介紹

2.1 PLVLiveRoomDataManager

直播間資料管理器,實作IPLVLiveRoomDataManager介面。負責呼叫IPLVLiveRoomDataRequester取得http資料,存放http資料、配置資料、以及各個業務模組間共用的資料,因此需要每個業務模組間持有同一個直播間資料管理器物件。使用範例:

PLVLCCloudClassActivity

// 直播间数据管理器,每个业务初始化所需的参数
private IPLVLiveRoomDataManager liveRoomDataManager;

private void initLiveRoomManager() {
    // 使用PLVLiveChannelConfigFiller配置好直播参数后,用其创建直播间数据管理器实例
    liveRoomDataManager = new PLVLiveRoomDataManager(PLVLiveChannelConfigFiller.generateNewChannelConfig());

    // 进行网络请求,获取上报观看热度
    liveRoomDataManager.requestPageViewer();

    // 进行网络请求,获取直播详情数据
    liveRoomDataManager.requestChannelDetail();

    // 进行网络请求,获取功能开关数据
    liveRoomDataManager.requestChannelSwitch();
}

2.2 IPLVLiveRoomDataManager

直播間資料管理器實作的介面。定義了:

1、取得config

2、本地資料取得、設定

3、http介面請求

4、銷毀

public interface IPLVLiveRoomDataManager {

    // <editor-fold defaultstate="collapsed" desc="1、获取config">

    /**
     * 获取直播频道参数信息
     */
    @NonNull
    PLVLiveChannelConfig getConfig();
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="2、本地数据获取、设置">

    /**
     * 获取观看热度数据liveData
     */
    LiveData<PLVStatefulData<Integer>> getPageViewerData();

    /**
     * 获取直播详情数据LiveData
     */
    LiveData<PLVStatefulData<PolyvLiveClassDetailVO>> getClassDetailVO();

    /**
     * 获取功能开关数据LiveData
     */
    LiveData<PLVStatefulData<PolyvChatFunctionSwitchVO>> getFunctionSwitchVO();

    /**
     * 获取直播商品数据LiveData
     */
    LiveData<PLVStatefulData<PolyvCommodityVO>> getCommodityVO();

    /**
     * 获取直播状态LiveData
     */
    LiveData<PLVStatefulData<PLVLiveRoomDataManager.LiveStatus>> getLiveStatusData();

    /**
     * 获取请求商品接口的rank
     */
    int getCommodityRank();

    /**
     * 设置sessionId
     */
    void setSessionId(String sessionId);

    /**
     * 获取sessionId
     */
    String getSessionId();
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="3、http接口请求">

    /**
     * 上报观看热度
     */
    void requestPageViewer();

    /**
     * 获取直播详情数据
     */
    void requestChannelDetail();

    /**
     * 获取功能开关数据
     */
    void requestChannelSwitch();

    /**
     * 获取商品信息
     */
    void requestProductList();

    /**
     * 获取直播状态
     */
    void requestLiveStatus();

    /**
     * 获取商品信息
     *
     * @param rank 不传排序号会返回列表最前面的数据,传rank后返回rank之后的商品列表。传-1时和不传的结果一致。
     */
    void requestProductList(int rank);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="4、销毁">

    /**
     * 销毁,取消所有的接口请求
     */
    void destroy();
    // </editor-fold>
}
联系客服,在线咨询