伯索开放平台
首页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

快速接入

📌
iOS版本1.60.122

实时课堂#

一、 准备阶段#

PlasoStyleUpime 支持多种集成方式,推荐使用Cocoapods 集成:
1.
开始前确保你已安装 Cocoapods。参考 Getting Started with CocoaPods 安装说明
2.
在 Terminal 里进入项目根目录,并运行 pod init 命令。项目文件夹下会生成一个 Podfile 文本文件
3.
打开 Podfile 文件,修改文件为如下内容。注意将 Your App 替换为你的 Target 名称,并将 version 替换为你需集成的 SDK 版本,当前最新版本为 1.60.122
 source  'https://github.com/PlasoOpenPlatform/plaso-open-specs.git'
 
 target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.60.122'
    pod 'PlasoUpimeSdkModule', '~> 1.60.122'
    pod 'PlasoProgressHUD'
 end
特别提醒
如果项目编译时报错,类似
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
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
    end
  end
end
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"
1.
info.plist中添加以下配置,关闭Flutter Impeller渲染器
  <key>FLTEnableImpeller</key>
  <false />

二、 创建课堂#

创建课堂相关参数
参数名参数类型是否必须默认值参数说明
openFilenModeint否1文件显示模式:1.图片模式 2.窗口模式
supportCloudBoxboolean否true支持打开云端文件
supportLocalFileboolean否true支持打开本地文件
enableVideoMarkboolean否true视频暂停标注
enableSEndMessageboolean否true允许发送消息
configKeystring否"""white", "purplegreen", "black", "red", "orange", "yellow","green", "lightblue", "skyblue", "blue", "purple", "pink"
teachToolTypesboolean否true新教具:三角、矩形、椭圆、实线、虚线、正方形、圆形
enableInteractPPTboolean否true可交互PPT
useNewSmallboardboolean否true新小黑板
toolBoxTypesNS_ENUM否0提供随堂测、定时器、小黑板、红包雨、浏览器、抢答器、骰子
waterMarkstring否""水印
waterMarkSizedouble否0水印文字大小
waterMarkOpacitydouble否0水印文字透明度 (0-1.0)
waterMarkDynamicboolean否false水印是否动态
supportUndoboolean否true支持撤销
redPacketLimitint否0红包雨上限
endRemindTimelong否0终止时间
defaultPermissionint否-会议默认权限(0/1/2/4组合)
supportSelectboolean否true支持工具栏选择
supportHighlighterboolean否false是否支持荧光笔
shouldForbiddenScreenShotboolean否false是否防截屏
enableNewClassExamint否0老版随堂测:0;
新版随堂测选择题:1;
新版随堂测填空题:2;
新版随堂测选择+填空:3
d_enableObjectEraserint否0点擦: 0,
对象擦:
1(手写),
3(手写+文本框),
5(手写+图形),
7(手写+文本框+图形)
enableSaveBoardboolean否false是否支持保存白板
chatAlertConfigInt否0消息提醒控制 0:本地记录 1:开启 2:关闭; 默认0,仅对学生生效,老师不受此配置控制
如何生成Query
query参数说明: 参数说明表格

三、 资料中心#

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

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

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

在 Plaso SDK 中,对于需要动态获取访问地址的文件(无论是普通文件还是预解析文件),SDK 会通过 UpimeProtocol 中的回调方法向您的应用请求文件的可访问 URL。这确保了文件访问的安全性和灵活性,例如处理有时效性的签名 URL。
getExtFileName (用于普通文件)
语义: 当通过 info 插入普通文件时,SDK 会回调此方法。您需要根据传入的 info 参数计算并返回文件的可访问 URL。
方法签名: func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getExtFileName info: [Any], result: @escaping (String) -> Void)
getPreParseFileName (用于预解析文件)
语义: 当插入预解析文件时,SDK 会回调此方法。您需要根据预解析文件标识 (info) 和资源相对路径 (suffix) 计算并返回特定资源的带签名 URL。
方法签名: func upimeVC(_ upimeVC: UIViewController & UpimeProtocol, getPreParseFileName info: [Any], suffix: String, result: @escaping (String) -> Void)
通过正确构造 UpimeFile 对象并调用 liveVC?.insert(upimeFile) 方法,即可将文件插入到实时课堂中。

普通文件#

对于非预解析的普通文件(如直接的图片、视频、未预解析的PPT/PDF等),您可以通过以下两种方式将其插入课堂:

1. 通过直接URL插入#

您可以通过指定文件的直接访问 URL 来创建 UpimeFile 对象并将其插入课堂。

2. 通过 getExtFileName 动态获取URL#

当您不希望将文件的最终URL直接嵌入到UpimeFile对象中,而是在SDK需要访问时通过代理回调动态获取URL时,可以使用此方式。
步骤 1: 实现 UpimeProtocol 协议并设置 Delegate#
您的 UIViewController 需要遵循 UpimeProtocol 协议,并将 liveVC 的 delegate 设置为自身。
步骤 2: 构造并插入 UpimeFile 对象#
插入文件时,您需要构造一个包含特定信息的 UpimeFile 对象。这里的info通常包含用于定位和构建URL的自定义信息,例如主机、路径和文件名。
3. 实现 getExtFileName 方法#
在该方法中,解析SDK传回的info参数,构造出文件的完整URL,并通过result闭包返回。

预解析文件#

1. 概述#

为支持在课堂中高效加载和展示预解析的PPT/PDF文件,Plaso SDK 提供了文件预解析方案。此方案通过回调机制,允许您的应用后端动态生成并提供预解析文件的带签名访问地址,确保文件访问的安全性和灵活性。

2. 核心概念#

getPreParseFileName Delegate 方法:这是 UpimeProtocol 协议中的一个关键方法,SDK会在需要访问预解析文件中的特定资源(如图片、HTML文件、JSON配置等)时回调此方法。您需要在此方法中向您的后端服务请求带签名的资源URL。
带签名URL:出于安全考虑,SDK不会直接访问预解析文件,而是要求您提供一个有时效性、经过签名的URL。

3. 接入步骤#

请按照以下步骤在您的项目中实现文件预解析功能:
步骤 1: 实现 UpimeProtocol 协议#
您的 UIViewController 或其他负责管理课堂逻辑的类需要遵循 UpimeProtocol 协议。
步骤 2: 设置 liveVC 的 Delegate#
在创建 PlasoStyleUpimeClient 实例并配置 liveVC 后,务必将其 delegate 属性设置为您实现 UpimeProtocol 的实例。
步骤 3: 构造并插入 UpimeFile 对象#
当您需要向课堂中插入一个预解析文件时,需要构造一个特殊的 UpimeFile 对象。其 info 属性应包含 "parsed" 标识和文件的唯一 id。
步骤 4: 实现 getPreParseFileName 方法#
这是核心实现部分。在该方法中,您需要根据SDK提供的 info 和 suffix 参数,向您的后端服务发起请求,获取对应资源的带签名URL。

4. 注意事项#

后端服务:您需要有一个后端服务来接收文件ID和 suffix,并生成对应的带签名URL。SDK 不会直接处理签名逻辑。
URL替换:示例代码中的 http://120.55.3.51:3000 仅为演示,请务必替换为您的实际后端服务地址。
错误处理:在实际生产环境中,请确保 getPreParseFileName 方法中包含健壮的错误处理逻辑,例如网络请求失败、后端返回错误等情况。
suffix 参数:SDK会根据需要访问的预解析文件中的具体资源,传入不同的 suffix。例如,对于PPT,可能是 /index.html;对于PDF,可能是 /x.jpg (页面图片) 或 /info.json (配置信息)。您的后端服务需要能够处理这些不同的 suffix。
info 参数:info 参数是一个 NSArray,其中 info[0] 通常是 "parsed" 字符串,info[1] 是一个字典,包含预解析文件的 id。请确保您的代码能够正确解析此结构。

四、 参考Demo#

使用步骤(建议使用真机运行)
1.
解压缩
2.
打开 Podfile 文件,修改文件为如下内容。注意将 Your App 替换为你的 Target 名称,并将 version 替换为你需集成的 SDK 版本,当前最新版本为 1.53.310
target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.53.310'
    pod 'PlasoUpimeSdkModule', '~> 1.53.310'
end
3.
修改文件:PlasoSdkDemoForiOS/PlsoSdkDemoForiOS/AppConfig, 填入伯索分配的appid和key后即可体验。
static var appId: String = ""
static var appKey: String = ""

微课#

一、 准备阶段#

参考实时课堂

二、 微课VC初始化#

1.
准备一个本地文件夹用于存放微课资源
2.
根据本地路径初始化微课VC
3.
设置需要的属性
属性名是否必传属性含义
supportDraftfalse是否支持草稿
supportUndofalse是否支持撤销 (默认不支持)
supportCloudBoxfalse是否支持显示资料中心
supportLocalFilefalse是否支持插入本地文件
filesfalse是否允许插入文件, 0 不允许,1允许,默认为1
openFileModefalse插入文档时的文档展示模式
waterMarkfalse添加水印显示
waterMarkSizefalse水印文字大小
wartermarkOpacityfalse水印文字透明度 (0-1.0)
waterMarkDynamicfalse水印是否动态
enableInteractPPTfalse是否启用交互ppt按钮的控制,默认为NO
recordTypefalse微课类型,1 语音微课,2 视频微课
delegatefalse录制的UpimeRecordDelegate 代理对象
configKeyfalse该key值用于记录颜色和宽度,不传时不记录
defaultRecordNamefalse课程名称
teachToolTypesfalse教具选择
hosttrue环境信息
logDirfalseSDK 日志文件的存储目录
d_enableObjectEraserint点擦: 0,
对象擦:
1(手写),
3(手写+文本框),
5(手写+图形),
7(手写+文本框+图形)
enableSaveBoardboolean是否支持保存白板

三、 回调处理#

刚进入微课页面,页面就绪的回调
微课中点击云盘时的回调:用户弹出自己的资料中心
点击微课中的保存草稿回调:用户自行记录本地的草稿文件,再次进入草稿只需要在初始化时传入草稿目录即可
获取签名字符串:sdk从用户处获取文件签名后,再传回sdk
点击微课中的结束录制回调:用户提供上传签名,sdk负责上传微课
微课上传进度回调
微课上传结束回调
从微课页面退出的回调

四、参考Demo#

请点击下载
使用步骤(若模拟器无法运行,建议使用真机运行)
1.
解压缩
2.
打开 Podfile 文件,修改文件为如下内容。注意将 Your App 替换为你的 Target 名称,并将 version 替换为你需集成的 SDK 版本,当前最新版本为 1.60.122
target 'Your App' do
    pod 'PlasoStyleUpime', '~> 1.60.122'
    pod 'PlasoUpimeSdkModule', '~> 1.60.122'
end
3.
修改文件:PlasoSdkDemoForiOS/PlsoSdkDemoForiOS/AppConfig, 填入伯索分配的appid和key后即可体验。
static var appId: String = ""
static var appKey: String = ""
修改于 2025-10-28 02:30:51
上一页
快速接入
下一页
快速接入
Built with