Android LiveUI SDK接入文档

一、功能简介

直播云安卓LiveUISDK在LiveCoreSDK基础上提供了教室功能,包括一对一教室、小班教室、大班教室以及课程回放功能。涵盖一对一及多人音视频互动、课件教学、多功能涂鸦绘制、文字聊天、多种教学工具等功能。在此文档中,包含一套完整的LiveUI SDK接入说明。

二、设备要求

  • Android Minsdk 21
  • 安卓平板、安卓手机

  • Demo下载

三、接入步骤

1.在项目根目录的build.gradle文件里添加

buildscript {
   repositories {
       google()
       mavenCentral()
       jcenter()

    }

    ...
}

allprojects {
    repositories {

        ...
        maven {
            url "https://jitpack.io"
        }
    }
}

2.在App⽬录下的 build.gradle ⽂件⾥添加依赖(最新版本更新中)​

dependencies {
    implementation 'com.weclassroom.liveui:liveui:0.4.9'
}

四、如何使用

1.初始化

在Application实现类中调用初始化initSDK方法,建议添加到 Oncreate()方法中 。

LiveRoomManager.init(Context context, URL.ENVIRONMENT_VARIABLE env)

参数含义:

URL.ENVIRONMENT_VARIABLEU(确定环境参数):

​ URL.ENVIRONMENT_VARIABLE.ONLINE:正式环境,上线使用; URL.ENVIRONMENT_VARIABLE.TEST:测试环境,开发测试时使用。

2.创建信息并进入教室

  WcrClassJoinInfo joinInfo = new WcrClassJoinInfo();
                WcrClassJoinInfo.ClassInfo classInfo = WcrClassJoinInfo.ClassInfo();
                WcrClassJoinInfo.User user = new WcrClassJoinInfo.User();
                //课程预计开始时间(必填项)
                classInfo.setSchedualStartTime("2019-05-15 11:45:00");
                //课程预计结束时间(必填项)
                classInfo.setSchedualEndTime("2019-05-15 23:40:00");
                //老师头像
                classInfo.setTeacherAvatar(teacherAvatarUrl);
                //老师id(必填项)
                classInfo.setTeacherID(teacherid);
                //老师name
                classInfo.setTeacherName(teacherName);
                //课程状态(必填项)
                classInfo.setClassState(ClassStatus.CLASS_ONGOING);
                //课程id(必填项)
                classInfo.setClassID(classId);
                //课程类型(必填项)
                classInfo.setClasstype(0);
                //课程持续时长
                classInfo.setDuration(0);
                classInfo.setCourseId(courseId);
                //课程标题
                classInfo.setClassTitle(courseTitle);
                //机构id(必填项)
                classInfo.setInstitutionID(institutionID);
                //用户token(必填项)
                user.setUserToken(token);
                //用户id(必填项),为整型,为了方便使用,以字符串方式入参,如:“202027”等
                user.setUserId(userID);
                //用户头像
                user.setAvatar(avatarUrl);
                //用户角色
                user.setUserRole("student");
                //用户昵称
                user.setUserName(mStudentName);
                //手机号(大班课特有参数)
                user.setPhoneNumber("");
                //课程等待时H5页面(一对一、小班课、小组课特有参数)                               
                classInfo.setWaitingDocument("");
                //设置是否显示水印,LOGO_WATERMARK_GONE或 0为隐藏,LOGO_WATERMARK_SHOW或1为显示
                classInfo.setWatermarkShow(watermarkShow);
                //设置大班是否显示logo,LOGO_WATERMARK_GONE或0为隐藏,LOGO_WATERMARK_SHOW或1为显示
                classInfo.setLogoShow(logoShow);
                //设置大班课Logo图片(目前只支持本地图片)
                classInfo.setRoomLogoResource(roomLogoResource);
                joinInfo.setUser(user);
                joinInfo.setClassInfo(classInfo);
 JoinRoomHelper.joinRoom(Context, joinInfo)

特殊参数含义:

ClassState(课程状态):

​        
CLASS_PREPARE:课前状态(进入直播课堂);

​CLASS_ONGOING:课中开课状态(进入直播课堂);

CLASS_OVER:课程结束状态(进入回放页);

CLASS_EXPIRE:课程到期状态(暂未使用)

ClassType(课程类型):

​0=一对一模式;

1=普通大班课 口令方式;

2=普通大班课 登录的方式;

5=互动大班课 密码方式;

6=互动大班课 口令方式;

7=小班课。

9=小组课。
`

3.监听直播课程状态。

​ 如果需要监听课程状态,请在监听页面实现 com.weclassroom.liveui.listener.OnGlobalNotifier 接口,并实现方法 void onGlobalNotify(TNotifyType type, ExitRoomInfo info)

参数 TNotifyType type:

​JOIN_ROOM_SUCCESS(进房成功);

JOIN_ROOM_FAILD(进房失败);

EXIT_ROOM(退出教室);

STATE_CLASS_START(开始上课);

STATE_CLASS_END(下课消息);

**ExitRoomInfo info:** 返回课程的一些相关信息。

五、权限相关

  • 使用到的运行时权限如下,该权限已在教室内动态申请,请提示用户同意权限,否则会导致部分功能无法正常使用。 Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO

六、混淆相关

​ 待补充

七、附录

附1

AndroidX

注意: 目前直播云新架构使用的是 Android 提供的 AndroidX 依赖库,暂时不支持和之前的 support 库共存,如果发生编译时错误请参考官方文档 Migrating to AndroidX 进行迁移。

附2

刚结束的直播课程无法观看该课程的回放视频,视频流转为可观看的回放视频需要时间。

附3

常见问题请参考常见问题文档

​ ​

results matching ""

    No results matching ""