伯索开放平台
首页API文档SDK文档伯索官网
首页API文档SDK文档伯索官网
  1. 直播SDK
  • 产品介绍
    • SDK简介
    • SDK支持的业务场景
    • 产品特色
  • 产品功能
    • 实时课堂功能介绍
    • 微课功能介绍
    • 作业批改功能介绍
    • 上传课件功能介绍
    • SDK后台功能介绍
  • 接入指引
    • SDK对接标准流程说明
    • 关键概念
  • SDK接入文档
    • 历史课堂数据回调接入
    • 签名示例
    • 历史课堂转视频接入方式
    • 历史课堂/微课下载接口
    • query参数说明
    • 文档解析接口
    • SDK预解析服务接入说明
    • Web SDK
      • PlasoStyleUpime API说明
      • 云盘接入
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • Android SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • iOS SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • 播放器SDK
      • Web播放器
    • 「伯索云学堂」跳转接入指南
      • 跳转接入指南
  • 最佳实践
  • Open API帮助文档
    • Open API 主要功能
    • Open API集成常用场景
    • 数据字典
    • 接入须知
      • 调用流程
      • 在线调试
      • 通用错误码
    • 用户信息管理
      • 添加用户
      • 修改密码
      • 删除用户
      • 更新用户
      • 用户精确查询
      • 查询多个用户
      • 用户访问Token
      • 验证用户Token有效期
      • 批量添加用户
      • 恢复删除的用户
      • 随机分配课程顾问
    • 教材包管理
      • 查询机构教材包
      • 查询教材包内教材
      • 向学生分发教材包
    • 实时课堂管理
      • 创建实时课堂
      • 创建实时课堂(班)
      • 更新实时课堂
      • 更新实时课堂(班)
      • 删除实时课堂
      • 查询实时课堂列表
      • 更新实时课堂下听众用户
      • 获取实时课堂监控地址
      • 控制单个学员是否可以回看单次课
      • 获取单个课堂的回看地址
      • 删除单个历史课堂
      • 获取课堂考勤数据
      • 获取历史课堂信息
      • 获取历史课堂观看数据
      • 获取课堂互动信息
      • 获取课堂列表(新)
      • 获取实时课堂旁听链接
      • 获取极速直播推流地址
      • 获取课堂下板书图片
    • 班级管理
      • 创建班级
      • 更新班级
      • 删除班级
      • 查询班级列表
      • 向班级中添加学生
      • 从班级中移除学生
      • 更换学生所在班级
      • 老师列表中查询机构分校学科
      • 根据班级获取获取班级详情和人员信息
    • 学情数据
      • 获取学生课堂明细数据
      • 获取学生巩固明细数据
      • 获取学生测验明细数据
      • 获取学生辅导明细数据
      • 获取学生积分明细数据
    • 商城管理
      • 获取商品详情
      • 获取商品列表
      • 获取分校自定义商品栏目列表
      • 订单查询
      • 订单详情查询
    • 作业管理
      • 查询学生作业列表
      • 查询老师作业列表
    • 测验管理
      • 查询机构测评列表
      • 获取测评统计
      • 查询机构测验列表
      • 获取测验明细
    • 积分管理
      • 机构积分规则
      • 查下学生当前积分数
      • 查下机构每天的积分明细记录
  • 产品更新记录
    • Open API 更新日志
    • SDK 更新日志
  • 常见问题
    • PPT制作事项
    • 课件常见问题与解决方法
    • 网络相关问题
    • 声音相关问题
    • 网络测速
  • 推荐
    • 浏览器推荐
    • 常见软件推荐
    • 教育硬件推荐
  • 历史课堂视频
    POST
  • 查询历史课堂
    POST
  1. 直播SDK

快速接入

📌
Android版本1.60.120

1. 实时课堂集成方式#

1. 项目升级到AndroidX支持库#

项目需要用到AndroidX支持库,如果在使用Android Support库的请迁移,如果已经使用AndroidX请忽略。 迁移可参考下面的说明,或查阅AndroidX迁移指南。
说明:
1.
切换到单独的分支,迁移完成前最好不进行功能开发,然后将代码备份一份,防止迁移失败
2.
检查项目中每个module中support库的依赖,将版本升级到28.0.0,需要将compileSdkVersion升级到28,保证项目正常能编译通过
3.
在Android Studio中Refactor->Migrate to AndroidX完成迁移
4.
编译项目,如果有编译错误,解决即可(如第三方依赖库版本不支持androidx需要升级到新版本,例如ButterKnife)

2. 配置伯索的maven仓库#

在项目的build.gradle或settings.gradle文件中添加伯索的maven仓库。

3. app->build.gradle配置#

在项目的app->build.gradle 中:
①配置minSdkVersion需要大于等于26,targetSdkVersion 大于等于33,
②添加SDK相关的依赖。

4. 实现IResourceProvider#

IResourceProvider是定制化资料中心接口, APP提供该接口的实现,并传入SDK。IResourceProvider实现后我们需要创建一个StyleUpime对象,创建StyleUpime对象需要用到IResourceProvider,IResourceProvider不能为null,后续启动实时课堂需要使用StyleUpime对象。
在signQuery方法中我们需要生成一个query,生成方法参考如下形式:

5. 启动实时课堂#

实时课堂支持配置日志和水印,在启动实时课堂之前我们可以根据自己的需要进行设置,如不需要可以忽略。
UpimeParameter 参数说明:
参数名参数类型是否必须默认值参数说明
appIdString否-应用唯一标识
waterMarkString否-水印
logDirString否-日志路径
logLevelint否-1日志级别 DEBUG: 0 INFO: 1 WARN: 2 ERROR: 3
启动实时课堂时也需要生成一个query,query中包含创建实时课堂所需要的一些参数,query里面如果包含中文字符串,中文字符串必须进行utf8编码,可以参考demo SignHelper里面buildQuery函数的编码方式。 query创建方法参考以下形式:
query参数说明:参数说明表格
query生成完成后需要在启动实时课堂时传给SDK,需要构建一个ClassConfig对象,ClassConfig对象同样需要进行一些参数配置。ClassConfig对象创建完毕后只需要通过StyleUpime对象调用launchLiveClass方法即可启动实时课堂。
ClassConfig参数说明:
参数名参数类型是否必要默认值参数说明
classURLString是-实时课堂配置参数query ,如果query里面有中文字符串,此中文字符串需要编码后放到query里传入。
hostString是-服务地址
userNameString否-当前用户名称
classMemberArrayList<User>否-课堂成员列表
allowLocalPPTboolean否true是否允许在实时课堂中插入本地PPT
enableSendMessageboolean否true消息界面是否显示消息输入框
hideOtherClientboolean否false是否显示学生不在班级的所有学生和助教
endRemindTimeint否0实时课堂添加双减的提示时间,到达这个时间之后,会提示用户 (:秒)
redPacketLimitint否0红包雨个数限制
defaultPermissionint否0会议模式默认权限
supportSelectboolean否true是否支持工具栏选择箭头
openFileModeint否null文件打开模式
toolboxItemsint否-百宝箱工具条目配置(工具请参考UpimeConfig.ToolBoxItem)
enableInteractPptBoolean否false是否开启PPT交互
teachToolTypesint否0教具类型支持的类型(类型请参考UpimeConfig.TeacherToolType)
supportUndoBoolean否false是否支持撤销操作
useNewSmallBoardBoolean否false是否使用新版小黑板
supportHighlighterBoolean否false是否使用荧光笔
forbiddenScreenShotBoolean否false是否防止课堂截屏
enableVoteBoolean否false是否支持投票工具
enableSaveBoardBoolean否false是否支持保存板书功能,如果支持需要对接实现onUpimeBoardSaved这个回调,保存数据到自己三方服务器
chatMsgPopupint否0:本地记录; 1:远端控制开启; 2:远端控制关闭; 默认0,仅对学生生效,老师不受此配置控制学生进入课堂是消息弹框提醒设置

6. 参考代码demo#

以上就是实时课堂SDK的集成步骤,更加详细步骤请参考代码Demo,请点击下载。
使用步骤:
1)下载代码并解压到本地
2)修改build.gradle文件,升级版本到1.53.311
3)修改文件: app/src/main/java/cn/plaso/liveclasssdkdemo/Config.kt, 填入伯索分配的appid和key后即可体验

7. 资料中心接入事项#

本章节说明资料中心两类文件(非预解析、预解析)的接入要点与回调契约,保持原有对接逻辑不变:
非预解析文件:通过 insertObject 直接插入,视 info 类型决定是否触发回调签名(getExtFileName)。
预解析文件:通过 insertObject 插入后,由 SDK 回调 getPreParseFileName 按页/资源后缀返回可访问直链。
通用回调接口(签名与取址):
getExtFileName(非预解析使用)
方法签名(Kotlin):fun getExtFileName(info: Any?, callback: IResourceCallback?)
语义:基于插入时的 info 计算资源直链(含签名),成功回调 callback.onFilePath(realUrl),失败回调 callback.onFilePath(null)。
getPreParseFileName(预解析使用)
方法签名(Kotlin):fun getPreParseFileName(info: Any?, suffix: String?, callback: IResourceCallback?)
语义:基于预解析文件标识(info)与页面后缀(suffix)计算资源直链(含签名),成功回调 callback.onFilePath(realUrl),失败回调 callback.onFilePath(null)。

7.1 非预解析文件#

资料中心打开非预解析文件时,需要创建如下 UpimeObject 并调用 insertObject 将文件插入课堂:
(1) info 传入 String 类型
type 可为 TYPE_PPT、TYPE_DOC、TYPE_XLS、TYPE_PDF、TYPE_AUDIO、TYPE_VIDEO;
info 必须是“可直接访问的 HTTP 地址”(无需额外签名)。
行为:调用 insertObject 后,直接将文件插入白板,不会触发额外回调(无需实现方处理)。
(2) info 传入 List 类型
type 建议用于 TYPE_AUDIO、TYPE_VIDEO;
info 为 List 类型(实现方自定义结构)。
行为:调用 insertObject 插入后会回调 getExtFileName。实现方需在 getExtFileName 中完成签名并返回完整可访问的 HTTP 地址。
getExtFileName 方法与参数约定(Kotlin):
方法签名:fun getExtFileName(info: Any?, callback: IResourceCallback?)
参数说明:
info: 插入文件时 UpimeObject.info 的原始对象。常见做法是包含用于定位与签名的标识信息(例如携带 id 的 List 或其他结构)。
callback:
成功:callback.onFilePath(realUrl)(建议在主线程回调)。
失败:callback.onFilePath(null)(或记录错误后结束,避免长时间无回调)。

7.2 预解析文件#

资料中心打开预解析文件时,需要创建如下 UpimeObject 并调用 insertObject 将文件插入课堂:
行为:调用 insertObject 后,会回调 getPreParseFileName;实现方需在该函数中完成签名并返回完整可访问的 HTTP 地址。
getPreParseFileName 方法与参数约定(Kotlin):
方法签名:fun getPreParseFileName(info: Any?, suffix: String?, callback: IResourceCallback?)
参数说明:
info: 预解析文件的唯一标识。常见形态为 List,包含键 "id":例如 ["parsed", {"id":"abcdef123456"}](推荐)。实现方应优先从 List 中读取 id,据此计算文件地址。
suffix: 资源相对路径/页面后缀,例如:"/1.jpg"、"/index.html"、"/ispring.html"、"/info.json"(用于指示要获取的具体页码或页面文件)。
callback:
成功:callback.onFilePath(realUrl)(建议在主线程回调)。
失败:callback.onFilePath(null)(或记录错误后结束,避免长时间无回调)。
提示:suffix 在参与拼接与请求时通常需要进行 URL 编码;若包含图片处理等查询参数,请整体进行编码后透传到服务端签名。
参考示例代码:(详细代码可参考demo)

8. 对接注意事项#

(1). 在DemoApp.kt文件中传入appId 和appKey 值,详情参考下文例子;签名请通过在服务器中完成,Demo 中只是样例。
(2). AndroidManifest.xml添加下面代码,不然课堂里面截图至相册功能可能会失败
<meta-data
    android:name="ScopedStorage"
    android:value="true" />
(3). targetSdkVersion 设置成 33;

2. 微课集成方式#

1. 项目升级到AndroidX支持库#

项目需要用到AndroidX支持库,如果在使用Android Support库的请迁移,如果已经使用AndroidX请忽略。 迁移可参考下面的说明,或查阅AndroidX迁移指南。
说明:
1.
切换到单独的分支,迁移完成前最好不进行功能开发,然后将代码备份一份,防止迁移失败
2.
检查项目中每个module中support库的依赖,将版本升级到28.0.0,需要将compileSdkVersion升级到28,保证项目正常能编译通过
3.
在Android Studio中Refactor->Migrate to AndroidX完成迁移
4.
编译项目,如果有编译错误,解决即可(如第三方依赖库版本不支持androidx需要升级到新版本,例如ButterKnife)

2. 配置伯索的maven仓库#

在项目的build.gradle或settings.gradle文件中添加伯索的maven仓库。

3. app->build.gradle配置#

在项目的app->build.gradle 中:
①配置minSdkVersion需要大于等于26,targetSdkVersion大于等于33,
②添加SDK相关的依赖。

4. 实现 IResourceProvider#

IResourceProvider是定制化资料中心接口, APP提供该接口的实现,并传入SDK。IResourceProvider实现后我们需要创建一个StyleUpime对象,创建StyleUpime对象需要用到IResourceProvider,IResourceProvider不能为null,后续启动微课需要使用StyleUpime对象。
在signQuery方法中我们需要生成一个query,生成方法参考如下形式:

5. 启动微课#

启动微课需要构建一个MiniLessonConfig对象,MiniLessonConfig对象需要进行一些参数配置。MiniLessonConfig对象创建完毕后只需要通过StyleUpime对象调用launchMiniLesson方法即可启动微课。
MiniLessonConfig参数说明:
参数名参数类型是否必要默认值参数说明
topicString否-微课主题名称
draftPathString是-微课草稿本地保存路径
openFileModeint否null文件打开模式
supportDraftBoolean否true是否支持存为草稿
enableInteractPptBoolean否false是否开启PPT交互
teachToolTypesint否0是否打开教具
supportUndoBoolean否false是否支持撤销操作
recordTypeint否0微课录制类型音频传:1视频传:2
supportHighlighterBoolean否false是否使用荧光笔
forbiddenScreenShotBoolean否false是否防止截屏
litModeint否0点擦为0, 对象擦:1(手写),3(手写+文本框),5(手写+图形),7(手写+文本框+图形)

6. 预览微课#

预览微课只需要通过StyleUpime对象调用playMiniLesson方法,将微课保存的路径传入即可预览微课。

7. 上传微课#

微课内容上传到自己的OSS。

8. 删除微课#

对于编辑状态下的微课需要通过StyleUpime对象调用deleteDraft方法删除,其他状态只需要删除本地微课或已上传到OSS的微课即可。

9. 参考代码demo#

以上就是微课SDK的集成步骤,更加详细步骤请参考代码Demo,请点击下载。
使用步骤:
1)下载代码并解压到本地
2)修改build.gradle文件,升级版本到1.60.120
3)修改文件: app/src/main/java/cn/plaso/liveclasssdkdemo/Config.kt, 填入伯索分配的appid和key后即可体验
修改于 2025-10-28 02:26:58
上一页
快速接入
下一页
快速接入
Built with