保利威文档中心

幫助中心

3_1-云课堂场景(Activity)

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

1 功能概述

雲端課堂場景的介面實作為 PLVLCCloudClassActivity

雲端課堂場景下定義的 直播模式、回放模式 的 共用介面。 直播支援的功能有:播放器、頁面選單、懸浮PPT、連線麥克風、互動應用。 回放支援的功能有:播放器、頁面選單、懸浮PPT。

2 介面介紹

//1.3.0增加viewerAvatar参数

/**
 * 启动直播页
 *
 * @param activity   上下文Activity
 * @param channelId  频道号
 * @param viewerId   观众ID
 * @param viewerName 观众昵称
 * @param viewerAvatar  观众头像
 * @return true表示启动成功,false表示启动失败
 */
public static boolean launchLive(@NonNull Activity activity,
                                 @NonNull String channelId,
                                 @NonNull String viewerId,
                                 @NonNull String viewerName,
                                 @NonNull String viewerAvatar);

/**
 * 启动回放页面
 *
 * @param activity      上下文Activity
 * @param channelId     频道号
 * @param vid           视频ID
 * @param viewerId      观众ID
 * @param viewerName    观众昵称
 * @param viewerAvatar  观众头像
 * @param videoListType 回放视频类型,参考{@link PolyvPlaybackListType}
 * @return true表示启动成功,false表示启动失败
 */
public static boolean launchPlayback(@NonNull Activity activity,
                                     @NonNull String channelId,
                                     @NonNull String vid,
                                     @NonNull String viewerId,
                                     @NonNull String viewerName,
                                     @NonNull String viewerAvatar,
                                     int videoListType);

3 實作介紹

雲端課堂將每個功能模組封裝成一個佈局Layout類別,在Activity中透過簡單的佈局組合即可完成整合。

3.1 初始化頁面參數

private void initParams() {
    // 获取输入数据
    Intent intent = getIntent();
    boolean isLive = intent.getBooleanExtra(EXTRA_IS_LIVE, true);
    String channelId = intent.getStringExtra(EXTRA_CHANNEL_ID);
    String viewerId = intent.getStringExtra(EXTRA_VIEWER_ID);
    String viewerName = intent.getStringExtra(EXTRA_VIEWER_NAME);

    // 设置Config数据
    PLVLiveChannelConfigFiller.setIsLive(isLive);
    PLVLiveChannelConfigFiller.setupUser(viewerId, viewerName);
    PLVLiveChannelConfigFiller.setupChannelId(channelId);

    // 根据不同模式,设置对应参数
    if (!isLive) { // 回放模式
        String vid = intent.getStringExtra(EXTRA_VID);
        int videoListType = intent.getIntExtra(EXTRA_VIDEO_LIST_TYPE, PolyvPlaybackListType.PLAYBACK);
        PLVLiveChannelConfigFiller.setupVid(vid);
        PLVLiveChannelConfigFiller.setupVideoListType(videoListType);
    }
}

3.2 初始化直播間資料管理器

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

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

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

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

3.3 初始化頁面UI

private void initView() {
    //初始化共用的UI

    if(liveRoomDataManager.getConfig().isLive()){
        //初始化直播的UI
    }else{
        //初始化回放的UI
    }
}

根據目前是直播或回放,將選擇不同的Layout控制項組合進行初始化。

直播支援的功能有:播放器、頁面選單、懸浮PPT、連線麥克風、互動應用。

回放支援的功能有:播放器、頁面選單、懸浮PPT。

各個功能模組的佈局介面如下:

播放器佈局介面:IPLVLCMediaLayout

連線麥克風佈局介面:IPLVLCLinkMicLayout

直播頁面選單佈局介面:IPLVLCLivePageMenuLayout

互動應用佈局介面:IPLVInteractLayout

PPT佈局介面:IPLVLCFloatingPPTLayout

3.4 設定佈局回呼

由於各個功能之間需要進行通訊,例如播放器的直播開始和直播結束狀態會影響到PPT的顯示和隱藏,因此每個佈局都提供了外部可以使用的回呼,方便各個功能模組進行通訊。

詳細介面介紹請參考各個功能模組的具體介紹文章。

回呼設定和處理請參考Activity中的設定佈局回呼方法區塊。

3.5 處理螢幕旋轉

雲端課堂場景的直播和回放均支援橫豎屏觀看,需要在Activity中做對應的程式碼處理。

參考程式碼區塊:螢幕旋轉處理

联系客服,在线咨询