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中做對應的程式碼處理。
參考程式碼區塊:螢幕旋轉處理
