保利威文档中心

幫助中心

6_1-互动学堂场景(Activity)

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

1 功能概述

互動學堂場景的介面實作為 PLVHCLiveHiClassActivity

互動學堂場景下定義的 講師、學生 的 共用介面。 支援的功能有:連麥、聊天室、文件、課堂管理

2 介面介紹

/**
  * 启动互动学堂上课页
  *
  * @param activity      上下文Activity
  * @param channelId     频道号
  * @param courseCode    课程号,课程登录时需要传
  * @param lessonId      课节Id
  * @param token         token
  * @param sessionId     场次Id
  * @param userType      用户类型
  * @param viewerId      上课者Id
  * @param viewerName    上课者昵称
  * @param avatarUrl     上课者头像url
  * @return PLVLaunchResult.isSuccess=true表示启动成功,PLVLaunchResult.isSuccess=false表示启动失败
  */
@SuppressWarnings("ConstantConditions")
@NonNull
public static PLVLaunchResult launchHiClass(@NonNull Activity activity,
                                            @NonNull String channelId,
                                            String courseCode,
                                            long lessonId,
                                            @NonNull String token,
                                            @NonNull String sessionId,
                                            @NonNull String userType,
                                            @NonNull String viewerId,
                                            @NonNull String viewerName,
                                            @NonNull String avatarUrl,
                                            boolean isShowDeviceDetectionLayout);

3 實作介紹

互動學堂將每個功能模組封裝成一個佈局Layout類別,根據展示需要的不同在Fragment中對佈局進行組合,在Activity中透過簡單地添加Fragment即可完成整合。

3.1 初始化頁面參數

private void initParams() {
    // 获取输入数据
    Intent intent = getIntent();
    String channelId = intent.getStringExtra(EXTRA_CHANNEL_ID);
    String viewerId = intent.getStringExtra(EXTRA_VIEWER_ID);
    String viewerName = intent.getStringExtra(EXTRA_VIEWER_NAME);
    String avatar = intent.getStringExtra(EXTRA_AVATAR_URL);
    String userType = intent.getStringExtra(EXTRA_USER_TYPE);

    String token = intent.getStringExtra(EXTRA_TOKEN);
    long lessonId = intent.getLongExtra(EXTRA_LESSON_ID, 0);
    String courseCode = intent.getStringExtra(EXTRA_COURSE_CODE);

    // 设置Config数据
    PLVLiveChannelConfigFiller.setupUser(viewerId, viewerName, avatar, userType);
    PLVLiveChannelConfigFiller.setupChannelId(channelId);
    PLVLiveChannelConfigFiller.setHiClassConfig(token, lessonId, courseCode);
    // 配置互动学堂信息,页面销毁时需调用PLVHiClassGlobalConfig.clear方法清除
    PLVHiClassGlobalConfig.setupConfig(token, userType, PLVSocketUserConstant.USERTYPE_TEACHER.equals(userType), courseCode, lessonId, channelId);
}

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

private void initLiveRoomManager() {
    // 使用PLVLiveChannelConfigFiller配置好直播参数后,用其创建直播间数据管理器实例
    liveRoomDataManager = new PLVLiveRoomDataManager(PLVLiveChannelConfigFiller.generateNewChannelConfig());
    // 设置场次Id
    String sessionId = getIntent().getStringExtra(EXTRA_SESSION_ID);
    liveRoomDataManager.setSessionId(sessionId);
    // 进行网络请求,获取详情课节数据
    liveRoomDataManager.requestLessonDetail();
}

3.3 初始化頁面UI

private void initView() {
    // 先初始化连麦布局
    plvhcLinkmicLy.init(liveRoomDataManager);
    // 初始化状态栏布局
    plvhcStatusBarLy.init(liveRoomDataManager);
    // 初始化工具栏布局
    plvhcToolBarLy.init(liveRoomDataManager);

    // 初始化连麦的媒体配置
    // 省略代码 ...

    // 初始化文档布局
    plvhcDocumentLy.init(liveRoomDataManager);
    // 初始化学生观看倒计时布局
    // ... 省略代码

    // 注册linkMicView
    // 省略代码 ...

    // 进入横屏模式
    PLVScreenUtils.enterLandscape(this);
}

根據不同的業務需要,可以選擇不同的Layout組合進行初始化。

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

連麥佈局介面:IPLVHCLinkMicLayout

聊天室佈局介面:PLVHCChatroomLayout

文件佈局介面:IPLVHCDocumentLayout

狀態列佈局介面:IPLVHCStatusBarLayout

工具列佈局介面:IPLVHCToolBarLayout

3.4 設定佈局回呼

由於各個功能之間需要進行通訊,例如連麥的網路狀態改變需要更新狀態列的網路狀態UI、工具列的上課下課按鈕狀態也會根據課節狀態而改變,因此每個佈局都提供了外部可以使用的回呼,方便各個功能模組進行通訊。

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

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

联系客服,在线咨询