伯索开放平台
首页
API文档SDK文档伯索官网
首页
API文档SDK文档伯索官网
  1. 直播SDK
  • 产品介绍
    • SDK简介
    • SDK支持的业务场景
    • 产品特色
  • 产品功能
    • 实时课堂功能介绍
    • 微课功能介绍
    • 作业批改功能介绍
    • 上传课件功能介绍
    • SDK后台功能介绍
  • 接入指引
    • SDK对接标准流程说明
    • 关键概念
  • SDK接入文档
    • 历史课堂数据回调接入
    • 签名示例
    • 历史课堂转视频接入方式
    • 历史课堂/微课下载接口
    • query参数说明
    • 文档解析接口
    • SDK预解析服务接入说明
    • 「伯索云学堂」跳转接入指南
    • SDK版本发布记录
    • Web SDK
      • PlasoStyleUpime API说明
      • 云盘接入
      • 接入预解析能力 (Web端)
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • Electron SDK
      • 快速接入
    • Android SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • iOS SDK
      • 直播SDK
        • 快速接入
      • 微课SDK
        • 快速接入
      • 批注SDK
        • 快速接入
    • 播放器SDK
      • Web播放器
  • Open API帮助文档
    • Open API 主要功能
    • Open API集成常用场景
    • 数据字典
    • 接入须知
      • 调用流程
      • 在线调试
      • 通用错误码
    • 用户管理
      • 添加用户
      • 修改密码
      • 删除用户
      • 更新用户
      • 用户精确查询
      • 查询多个用户
      • 用户访问Token
      • 验证用户Token有效期
      • 批量添加用户
      • 恢复删除的用户
      • 设置学生属性(是否跟随/是否加联/分配课程顾问)
      • 学生随机分配课程顾问(V2)
    • 班级管理
      • 创建班级
      • 更新班级
      • 删除班级
      • 查询班级列表
      • 向班级中添加学生
      • 从班级中移除学生
      • 更换学生所在班级
      • 老师列表中查询机构分校学科
      • 根据班级获取获取班级详情和人员信息
      • 批量绑定老师到班级
    • 教材包管理
      • 查询机构教材包
      • 查询教材包内教材
      • 向学生分发教材包
    • 实时课堂管理
      • 创建实时课堂
      • 创建实时课堂(班)
      • 更新实时课堂
      • 更新实时课堂(班)
      • 删除实时课堂
      • 查询实时课堂列表
      • 更新实时课堂下听众用户
      • 获取实时课堂监控地址
      • 控制单个学员是否可以回看单次课
      • 获取单个课堂的回看地址
      • 删除单个历史课堂
      • 获取课堂考勤数据
      • 获取历史课堂信息
      • 获取历史课堂观看数据
      • 获取课堂互动信息
      • 获取课堂列表(新)
      • 获取实时课堂旁听链接
      • 获取极速直播推流地址
      • 获取课堂下板书图片
      • 获取课堂中引用的课件列表
    • 学情数据
      • 获取学生课堂明细数据
      • 获取学生巩固明细数据
      • 获取学生测验明细数据
      • 获取学生辅导明细数据
      • 获取学生积分明细数据
      • 获取学生课程统计数据
      • 获取学生课程详情统计数据
    • 商城管理
      • 获取商品详情
      • 获取商品列表
      • 获取分校自定义商品栏目列表
      • 订单查询
      • 订单详情查询
    • 作业管理
      • 查询学生作业列表
      • 查询老师作业列表
    • 测验管理
      • 查询机构测评列表
      • 获取测评统计
      • 查询机构测验列表
      • 获取测验明细
    • 积分管理
      • 机构积分规则
      • 查下学生当前积分数
      • 查下机构每天的积分明细记录
    • 课程顾问
      • 新建课程顾问
      • 编辑课程顾问
      • 查询课程顾问
      • 停用/启用课程顾问
      • 更新课程顾问密码
    • 新课程
      • 创建课程
      • 单次创建直播/实时课堂
      • 查询课程列表
      • 新增课程下发学生
      • 删除课程下发学生
      • 查询课程下发学生列表
      • 下发课程到班级
      • 移除课程班级绑定
      • 查询课程绑定班级IDs
      • 查询课程任务列表
      • 更新课程
    • 校区管理
      • 创建校区
      • 编辑校区
      • 关闭校区
    • 事件推送
      • 事件推送机制
      • 事件推送接入指南
    • 其他接口
      • 三方系统唤起客户端上课方案说明
      • 唤起客户端URL
  • 产品更新记录
    • Open API 更新日志
    • SDK 更新日志
  • 常见问题
    • PPT制作事项
    • 课件常见问题与解决方法
    • 网络相关问题
    • 声音相关问题
    • 网络测速
  • 推荐
    • 浏览器推荐
    • 常见软件推荐
    • 教育硬件推荐
  • 数据模型
    • 新课程
      • FailDetail
      • FileCommon
      • PackageBasicCreateParam
      • PackageBasicCreateResult
      • PackageBasicQueryParam
      • PackageBasicQueryWrapperResult
      • PackageBasicUpdateParam
      • PackageStudent
      • PackageStudentCreateParam
      • PackageStudentDeleteParam
      • PackageStudentGroupCreateParam
      • PackageStudentGroupDeleteParam
      • PackageStudentGroupDeleteResult
      • PackageStudentGroupIdsQueryParam
      • PackageStudentGroupIdsQueryResult
      • PackageStudentQueryParam
      • PackageStudentQueryResult
      • PackageTask
      • PackageTaskHomework
      • PackageTaskLiveSingleCreateResult
      • PackageTaskLiveSingleForm
      • PackageTaskQueryParam
      • PackageTaskQuickLive
      • PackageWrapper
      • Product
      • ProductGuide
      • ResponseResult
  1. 直播SDK

快速接入

📌
iOS版本1.68.110

1、准备阶段#

PlasoStyleUpime 支持多种集成方式,推荐使用 CocoaPods 集成:
(1) 开始前确保你已安装 CocoaPods。参考 Getting Started with CocoaPods 安装说明。
(2) 在 Terminal 里进入项目根目录,并运行 pod init 命令。项目文件夹下会生成一个 Podfile 文本文件。
(3) 打开 Podfile 文件,修改文件为如下内容。注意将 Your App 替换为你的 Target 名称,并将 version 替换为你需集成的 SDK 版本,当前最新版本为 1.68.110。
特别提醒
如果项目编译时报错,类似:
SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target
请将以下代码加入 Podfile 文件合适位置(通常是末尾处),加入后重新执行 pod install:
(4) 在 Terminal 内运行 pod install。成功安装后,项目文件夹下会生成一个 .xcworkspace 文件。
(5) 打开新生成的 .xcworkspace 文件,配置 Info.plist,需要开启以下权限:
Privacy - Bluetooth Always Usage Description                    "Your comment"
Privacy - Bluetooth Peripheral Usage Description                "Your comment"
Privacy - Microphone Usage Description                          "Your comment"
Privacy - Photo Library Additions Usage Description             "Your comment"
Privacy - Camera Usage Description                              "Your comment"
Privacy - Photo Library Usage Description                       "Your comment"
Privacy - Local Network Usage Description                       "Your comment"
(6) 在 Info.plist 中添加以下配置,关闭 Flutter Impeller 渲染器:添加键 FLTEnableImpeller,类型为 Boolean,值为 false。

2、启动实时课堂#

2.1 水印配置(可选)#

实时课堂支持配置水印,在启动实时课堂之前可根据需要设置,如不需要可忽略。
参数名参数类型是否必须默认值参数说明
waterMarkstring否""水印
waterMarkSizedouble否0水印文字大小
waterMarkOpacitydouble否0水印文字透明度(0–1.0)

2.2 设置违禁词(可选)#

用户可在课堂就绪后传入自定义违禁词列表,课堂内消息输入将应用此词库过滤。
建议在 onLiveClassReady 回调中设置:

2.3 浏览器(可选)#

2.3.1 开启浏览器#
2.3.2 浏览器首页 — 拉取分类#
实现 UpimeBrowserCategoriesDelegate:
不使用自定义首页时:result(PlasoBrowserHomeFetchPayload.skipped().encode())
相关模型见 PlasoBrowserHomeChannelPayload.h。

2.4 启动实时课堂流程#

各配置页通过 configInfoParameter() 补充的参数包括:appId、loginName、userName、meetingId、topic、meetingType、userType、onlineMode、validTime、endTime、appType、mediaType、d_sharpness、enableNewClassExam、d_enableObjectEraser 等。
query 参数说明:参数说明表格
query 生成完成后,创建 liveVC 并配置课堂参数,最后 present 即可启动实时课堂。
创建课堂相关参数:
参数名参数类型是否必须默认值参数说明
querystring是-通过 createLive(withQuery:) 传入签名后的课堂 query
userNamestring否-昵称
membersArray否-预传入的成员信息,可设置课堂中默认的成员信息
supportLocalFileboolean否true是否支持插入本地文件
enableSendMessageboolean否true是否允许发送消息;为 false 时消息界面不显示消息输入框
enableUserVisibleboolean否false课堂用户对当前用户的可见性是否可用;为 true 时 UpimeUser.visible 生效
endRemindTimelong否0传入终止时间,不传入表示不提醒(单位:秒)
redPacketLimitint否0红包雨个数上限(≤ 0 则使用默认设置)
defaultPermissionint否0会议模式权限设置(1/2/4 组合,≤ 0 则使用默认)
supportSelectboolean否true是否支持选择模式
openFileModeint否1插入文档时的文档展示模式:0 图片模式,1 窗口模式
toolBoxTypesint否0工具箱配置(参考 PureUpimeToolBoxType)
enableInteractPPTboolean否false是否启用交互 PPT
teachToolTypesint否0教具选择(参考 PureUpimeTeachToolType)
supportUndoboolean否false是否支持撤销
useNewSmallboardboolean否false是否启用新的小黑板
supportHighlighterboolean否false是否支持荧光笔
shouldForbiddenScreenShotboolean否false是否防截屏
enableVoteboolean否false课堂是否开启投票功能
enableSaveBoardboolean否false是否支持保存白板;若开启需对接保存白板回调
chatAlertConfigint否0消息提醒控制:0 本地记录,1 开启,2 关闭;默认 0,仅对学生生效
enableCtlANSboolean否true课堂是否允许调整 ANS(自动噪声抑制),默认允许
enableStarShowboolean否false是否展示积分排行榜
recordingPreparationTipstring否nil录制准备提示,默认 nil 不展示
hideRecordingIndicatorboolean否false是否隐藏「录制中」字样
showStudentClassElapsedTimeboolean否false学生端是否显示已开课时间
说明:随堂测版本、对象擦模式等属于 query 签名参数,由 configInfoParameter() 或 generateQuery() 写入,详见 Query 参数说明。Demo 中 Tool.sign 从 UserDefaults 读取 PlasoAppKey 完成签名,正式环境请在服务端生成带 signature 的 query。

3、资料中心#

3.1 插入文件通用概念:UpimeFile 对象#

在 Plaso SDK 中,无论是插入普通文件还是预解析文件,都通过 UpimeFile 对象进行封装。UpimeFile 是核心数据结构,用于向课堂传递文件信息。
主要属性包括:
type:UpimeFileType 枚举,表示文件类型(如 UpimeFileType_PPT、UpimeFileType_PDF 等)
title:文件显示标题
url:文件直接访问 URL(适用于普通文件)
info:文件特定信息数组(适用于预解析文件或需动态获取 URL 的普通文件)
pages:文件总页数(仅适用于 PDF 等多页文件)

3.2 通用回调接口(动态文件 URL 获取)#

对于需要动态获取访问地址的文件,SDK 会通过 UpimeProtocol 中的回调方法向应用请求可访问 URL,便于处理带时效的签名 URL。
getExtFileName(普通文件)
语义: 通过 info 插入普通文件时,SDK 回调此方法,需根据 info 返回可访问 URL。
方法签名: func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getExtFileName info: [Any], result: @escaping (String) -> Void)
getExtFileInfo(云课盾文件)
语义: 与 getExtFileName 类似,但 info 含云课盾签名参数,返回字典。
方法签名: func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getExtFileInfo info: [Any], result: @escaping ([String: Any]) -> Void)
getPreParseFileName(预解析文件)
语义: 插入预解析文件时,SDK 回调此方法,需根据文件标识(info)和资源相对路径(suffix)返回带签名 URL。
方法签名: func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getPreParseFileName info: [Any], suffix: String, result: @escaping (String) -> Void)
正确构造 UpimeFile 并调用 liveVC.insertFile(_:) 即可将文件插入实时课堂。

3.3 普通文件#

对于非预解析的普通文件(如图片、视频、未预解析的 PPT/PDF 等),可通过以下两种方式插入课堂。
3.3.1 通过直接 URL 插入#
3.3.2 通过 getExtFileName 动态获取 URL#
当不在 UpimeFile 中嵌入最终 URL,而是在 SDK 需要访问时通过代理回调动态获取时,可使用此方式。
(1) 实现 UpimeProtocol 并设置 Delegate
(2) 构造并插入 UpimeFile
(3) 实现 getExtFileName

3.4 预解析文件#

3.4.1 概述#
为支持在课堂中高效加载和展示预解析 PPT/PDF,Plaso SDK 提供文件预解析方案。通过回调机制,应用后端可动态生成并提供带签名访问地址。
3.4.2 核心概念#
getPreParseFileName Delegate 方法: SDK 访问预解析文件中的具体资源(图片、HTML、JSON 等)时回调此方法,需向后端请求带签名 URL。
带签名 URL: SDK 不直接访问预解析文件,而是要求提供有时效性的签名 URL。
3.4.3 接入步骤#
(1) 实现 UpimeProtocol
(2) 设置 liveVC 的 Delegate
(3) 构造并插入 UpimeFile
(4) 实现 getPreParseFileName
3.4.4 注意事项#
后端服务: 需有后端服务接收文件 ID 和 suffix,并生成对应签名 URL。
URL 替换: 示例中的 http://120.55.3.51:3000 仅为演示,请替换为实际后端地址。
错误处理: 生产环境需处理网络失败、后端返回错误等情况。
suffix 参数: SDK 按访问资源传入不同 suffix,如 PPT 的 /index.html、PDF 的 /x.jpg 或 /info.json。
info 参数: info 为 NSArray,info[0] 通常为 "parsed",info[1] 为含 id 的字典。

4、参考 Demo#

PlasoSdkIosSample
使用步骤(建议使用真机运行):
(1) 解压缩,进入仓库内 PlasoSdkDemoForiOS 目录。
(2) 打开 Podfile,修改内容如下。将 Your App 替换为 Target 名称,version 替换为需集成的 SDK 版本(当前最新 1.68.110)。
(3) 修改 PlasoSdkDemoForiOS/AppConfig.swift,填入伯索分配的 appId 和 appKey 后即可体验。
修改于 2026-06-25 07:51:48
上一页
快速接入
下一页
快速接入
Built with