云直播iOS播放SDK更新说明
v3.5.0
发布日期: 2019.10.17
1.iOS 13适配
2.升级连麦模块,支持新版连麦
3.回放支持https播放
4.修复网络异常提示
v3.4.2
发布日期: 2019.09.20
1.修复异常退出无法连麦
v3.4.1
发布日期: 2019.09.06
1.新增修改文档背景色方法
/**
改变文档背景颜色
@param hexColor 字符串,传颜色的HEXColor 如:#000000
*/
- (void)changeDocWebColor:(NSString *)hexColor9
2.修复文档切换大小异常
3.修复播放器异常闪退
4.demo优化超链接
v3.4.0
发布日期: 2019.05.30
- 优化内存管理,提升稳定性;
- 重构回放离线下载功能模块;
- 优化播放逻辑,修复异常闪退问题;
- 修复云直播demo聊天闪退问题;
v3.3.0
发布日期: 2019.03.20
- 新增奖杯接口及demo;
- demo新增iTunes锁屏播放功能;
- 回放demo新增记忆播放功能;
- 优化回放进度条拖动准确度;
- 优化回放前后台切换播放功能;
v3.2.1
发布日期: 2019.03.06
新增直播和回放接收到白板文档加载状态
-
新增离线回放接收到文档加载状态
/** * @brief 文档加载状态(The new method) * index * 2 非动画文档加载完成 */ - (void)docLoadCompleteWithIndex:(NSInteger)index;
修复心跳上报问题
v3.2.0
发布日期: 2019.02.22
-
接收到文档加载状态
/** * @brief 文档加载状态(The new method) * index * 0 文档组件初始化完成 * 1 动画文档加载完成 * 2 非动画文档加载完成 */ - (void)docLoadCompleteWithIndex:(NSInteger)index;
-
接收到随堂测
/** * @brief 接收到随堂测(The new method) * rseultDic 随堂测内容 */ -(void)receivePracticeWithDic:(NSDictionary *) resultDic;
-
接收到随堂测提交结果
/** * @brief 随堂测提交结果(The new method) * rseultDic 提交结果,调用commitPracticeWithPracticeId:(NSString *)practiceId options:(NSArray *)options后执行 */ -(void)practiceSubmitResultsWithDic:(NSDictionary *) resultDic;
-
接收到随堂测统计结果
/** * @brief 随堂测统计结果(The new method) * rseultDic 统计结果,调用getPracticeStatisWithPracticeId:(NSString *)practiceId后执行 */ -(void)practiceStatisResultsWithDic:(NSDictionary *) resultDic;
-
接收到随堂测排名结果
/** * @brief 随堂测排名结果(The new method) * rseultDic 排名结果,调用getPracticeRankWithPracticeId:(NSString *)practiceId后执行 */ -(void)practiceRankResultsWithDic:(NSDictionary *) resultDic;
-
接收到停止随堂测
/** * @brief 停止随堂测(The new method) * rseultDic 结果 */ -(void)practiceStopWithDic:(NSDictionary *) resultDic;
-
接收到关闭随堂测
/** * @brief 关闭随堂测(The new method) * rseultDic 结果 */ -(void)practiceCloseWithDic:(NSDictionary *) resultDic;
-
接收到视频状态
/** * @brief 视频状态(The new method) * rseult playing/paused */ -(void)videoStateChangeWithString:(NSString *) result;
-
主动提交随堂测
/** * @brief 提交随堂测(The new method) * @param practiceId 随堂测ID * @param options 选项ID */ - (void)commitPracticeWithPracticeId:(NSString *)practiceId options:(NSArray *)options;
-
主动获取随堂测统计信息
/** * @brief 获取随堂测统计信息(可多次调用)(The new method) * @param practiceId 随堂测ID */ -(void)getPracticeStatisWithPracticeId:(NSString *)practiceId;
-
主动获取随堂测排名
/** * @brief 获取随堂测排名(可多次调用)(The new method) * @param practiceId 随堂测ID */ -(void)getPracticeRankWithPracticeId:(NSString *)practiceId;
回放新增文档加载状态
/**
* @brief 文档加载状态(The new method)
* index
* 0 文档组件初始化完成
* 1 动画文档加载完成
* 2 非动画文档加载完成
*/
- (void)docLoadCompleteWithIndex:(NSInteger)index;
v3.1.0
发布日期: 2019.01.16
- 获取观看者自身的信息
/**
* @brief 服务器端给自己设置的信息(The new method)
* viewerId 服务器端给自己设置的UserId
* groupId 分组id
* name 用户名
*/
-(void)setMyViewerInfo:(NSDictionary *) infoDic;
- 聊天审核
/**
* @brief 聊天审核(The new method)
* status 聊天消息的状态 0 显示 1 不不显示
* chatIds 聊天消息的id列列表
*/
-(void)chatLogManage:(NSDictionary *) manageDic;
-
敏感词过滤
注意在正常聊天时没有isFilterChat字段,只有用户聊天中含有敏感词汇时会有isFilterChat字段,且值为1,该内容仅发送者可见且没有存储,刷新会丢失该条聊天。
开启后台播放,sdk服务不中断,后台播放状态下音视频和文档前后台切换不重新连接
-
新增直播分组功能,通过groupId可以对学员进行分组
登录时可选传groupId parameter.groupid = self.groupid;//分组id 聊天和问答返回信息新增groupid字段
连麦支持主持人客户端
-
SDK新增聊天禁言及解禁回调
/** * @brief 收到聊天禁言(The new method) * mode 禁言类型 1:个人禁言 2:全员禁言 */ -(void)onBanChat:(NSDictionary *) modeDic; /** * @brief 收到解除禁言事件(The new method) * mode 禁言类型 1:个人禁言 2:全员禁言 */ -(void)onUnBanChat:(NSDictionary *) modeDic;
Demo 新增签到 问卷 答题卡 抽奖 连麦 公告 私聊功能
Demo 聊天支持显示图片
Demo 优化
v3.0.0
发布日期: 2018.12.12
- 视频或者文档大窗
/**
* @brief 视频或者文档大窗(The new method)
* isMain 1为视频为主,0为文档为主"
*/
- (void)onSwitchVideoDoc:(BOOL)isMain;
-
新demo3.0
1:本产品作为一个demo供参考 2:功能模块划分很详细了,每个模块的功能和UI都已经单独封装! 3:项目入口为CCEntranceViewController 分为观看直播入口和观看回放入口,入口文件见左侧文件夹已经为您分别使用中/英文两种语言命名 4:当您只需要使用某一个功能的时候只需要拷贝走对应的文件夹以及直播或者回放控制器的代码就好,对应的代码我们已经在selection中使用mark进行了标注(selection在当前路径的正上方, .m文件的旁边) 5:如果遇到问题请先测试demo,如果demo也有问题请联系技术支持人员(请带上系统版本号,手机型号,SDK版本号,问题描述,有日志带上日志) 6:新demo3.0文档直播间文档显示模式建议设置为适合窗口
v2.9.0
发布日期: 2018.11.08
- 新增学员踢出类型;
/**
* @brief 收到踢出消息(change)
kick_out_type
10 在允许重复登录前提下,后进入者会登录会踢出先前登录者
20 讲师、助教、主持人通过页面踢出按钮踢出用户
*/
- (void)onKickOut:(NSDictionary *)dictionary;
- 文档模式新增切换数据源响应事件;
/**
* @brief 客户端关闭摄像头(The new method)
数据源类型 数据源值 数据源类型描述 数据源类型描述值
source_type 0 source_type_desc 数据源类型:数据源未知,在直播未开始、非文档直播间或使用低版本客户端直播时会返回;
source_type 10 source_type_desc 数据源类型:摄像头打开
source_type 11 source_type_desc 数据源类型:摄像头关闭
source_type 20 source_type_desc 数据源类型:图片
source_type 30 source_type_desc 数据源类型:插播视频
source_type 40 source_type_desc 数据源类型:区域捕获
source_type 50 source_type_desc 数据源类型:桌面共享
source_type 60 source_type_desc 数据源类型:自定义场景
注:该功能仅限文档直播间使用,主播客户端需使用4.9.0以上版本;
- (void)receivedSwitchSource:(NSDictionary *)dic;
v2.8.0
发布日期: 2018.10.18
- 切换当前的文档模式;
/**
* @brief 切换当前的文档模式(The new method)
* 1.切换至跟随模式(默认值)值为0,
* 2.切换至自由模式;值为1,
*/
- (void)changeDocMode:(NSInteger)mode;
- 获取所有文档列表(代理方法);
/**
* @brief 获取所有文档列表(The new method)
*/
- (void)receivedDocsList:(NSDictionary *)listDic;
- 跳转到指定文档页;
/**
* @brief 跳转到指定文档页(自由模式才生效)(The new method)
* @param docId 文档的docId
* @param pageIndex 跳转的页数
*/
- (void)changePageToNumWithDocId:(NSString *)docId pageIndex:(NSInteger)pageIndex;
- 离线回放CCR文件的解析方法;
/**
* @brief 离线回放CCR文件的解析方法(The new method)
* @param dst 需要进行解析的CCR文件.
* @param dir 解析后输出目录, =NULL则解析到当前目录.
* @return 0-成功
* errcode:
-1 -打开输入文件(dst)失败;
-6 -dst存在但并不是加密文件格式;
*/
- (int)DecompressZipWithDec:(NSString *)dst dir:(NSString *)dir;
例子
//旧的解压方法
[SSZipArchive unzipFileAtPath:srcPath toDestination:destination];
//新的解析方法
_offlinePlayBack = [[OfflinePlayBack alloc] init];
int zipDec = [_offlinePlayBack DecompressZipWithDec:srcPath dir:destination];
注:若使用离线加密功能,必须使用此方法进行解压,否则会导致无法播放。
- 离线回放开始和结束时间;
/**
* @brief 回放的开始时间和结束时间(The new method)
*/
-(void)liveInfo:(NSDictionary *)dic;
v2.7.2
发布日期: 2018.09.25
- 优化文档展示生命周期;
/**
* 文档视图在直播间未开始直播时不创建
* 文档视图在直播间结束直播时将销毁
*/
- 修复demo离线下载iOS 12兼容性问题;
/**
* 修复iOS 12断点续传闪退问题
*/
v2.7.1
发布日期: 2018.09.10
- 新增问卷统计功能;
/**
* @brief 获取问卷统计(The new method)
*/
- (void)questionnaireStaticsInformation:(NSDictionary *)staticsDic;
- 新增禁用ppt滚动属性;
/**
* @brief PPT是否允许滚动
*/
@property(nonatomic, assign)BOOL pptInteractionEnabled;
- 优化回放信息加载方式;
- 优化直播和回放文档展示;
v2.7.0
发布日期: 2018.08.27
ppt支持极速动画模式
重构文档功能模块
双击ppt事件代理方法
/**
* @brief 双击ppt(The new method)
*/
- (void)doubleCllickPPTView;
- 新增自定义参数viewercustominfo
/**
* json格式字符串,可选,自定义用户信息,该信息会记录在用户访问记录中,用于统计分析使用(长度不能超过1000个字符,若直播间启用接口验证则该参数无效)如果不需要的话就不要传值
* 格式如下:
* viewercustominfo: '{"exportInfos": [ {"key": "城市", "value": "北京"}, {"key": "姓名", "value": "哈哈"}]}'
*/
@property(nonatomic, copy)NSString *viewercustominfo;
- 新增文档按直播间设置的模式展示
/**
* @brief PPT适配模式分为四种,
* 1.第一种是全部填充屏幕,可拉伸变形,
* 2.第二种是等比缩放,横向或竖向贴住边缘,另一方向可以留黑边,
* 3.第三种是等比缩放,横向或竖向贴住边缘,另一方向出边界,裁剪PPT,不可以留黑边
* 4.根据直播间文档显示模式的返回值进行设置(推荐)(The New Method)
*/
@property(assign, nonatomic)NSInteger PPTScalingMode;//PPT适配方式,含义见上面
- 新增回放的开始时间和结束时间
/**
* @brief 回放的开始时间和结束时间(The new method)
*/
-(void)liveInfo:(NSDictionary *)dic;
- 新增直播间封禁和解禁代理
/**
* @brief 直播间被禁(The new method)
*/
- (void)theRoomWasBanned;
/**
* @brief 直播间解禁(The new method)
*/
- (void)theRoomWasCleared;
v2.6.1
- 获取直播开始时间和直播时长代理方法
/**
* @brief 获取直播开始时间和直播时长(The new method)
* liveDuration 直播持续时间,单位(s),直播未开始返回-1"
* liveStartTime 新增开始直播时间(格式:yyyy-MM-dd HH:mm:ss),如果直播未开始,则返回空字符串
*/
- (void)startTimeAndDurationLiveBroadcast:(NSDictionary *)dataDic;
2.优化回放数据过多加载慢的问题
3.提高离线下载稳定性
4.修正翻页信息的格式
v2.6.0
发布日期: 2018.06.12
1.观看直播修改昵称
/**
* @brief 修改昵称(The new method)
* @param nickName 修改后的昵称
*/
- (void)changeNickName:(NSString *)nickName;
代理方法
/**
* @brief 修改后的昵称(The new method)
* @param nickName 修改后的昵称
*/
- (void)onChangeNickname:(NSString *)nickNime;
2.获取PPT当前页数和总页数
/**
* @brief 获取ppt当前页数和总页数(The new method)
*
* 回调当前翻页的页数信息
* 白板docTotalPage一直为0, pageNum从1开始
* 其他文档docTotalPage为正常页数,pageNum从0开始
* @param dictionary 翻页信息
*/
- (void)onPageChange:(NSDictionary *) dictionary;
3.获取最近一条广播
/**
* @brief 观看直播收到最近一条广播(回放和离线回放收到所有广播)(The new method)
* content 广播内容
* time 发布时间(单位:秒)
*/
- (void)broadcastHistory_msg:(NSArray *)History_msg;
v2.5.2
发布日期:2018.06.05
1.优化开发者使用文档,提高SDK接入体验;
2.修复回放频繁拖动进度条引起的崩溃问题;
3.修复频繁切换PPT动画文档和视频窗口位置,导致文档显示不完整问题;
v2.5.1
发布日期:2018.05.14
1.修复回放有liveid无recordid无法播放的问题;
v2.5.0
发布日期:2018.04.03
1.直播类中增加问卷功能
~~~
PlayForPCVC.m文件中相应的回调方法为:
- (void)questionnaireWithTitle:(NSString *)title url:(NSString *)url;
~~~
2.直播类中增加主动请求问卷功能
~~~
RequestData.h中增加相应的方法,当用户主动调用该方法时,会得到当前问卷的信息
-(void)getPublishingQuestionnaire;
~~~
3.离线回放类中增加改变播放器父窗口的方法
~~~
OfflinePlayBack.h中增加相应的方法
- (void)changePlayerParent:(UIView *) playerParent;
~~~
4.离线回放类中增加改变文档父窗口的方法
~~~
OfflinePlayBack.h中增加相应的方法
- (void)changeDocParent:(UIView *) docParent;
~~~
5.回放类中增加改变播放器父窗口的方法
~~~
RequestDataPlayBack.h中增加相应的方法
- (void)changePlayerParent:(UIView *) playerParent;
~~~
6.回放类中增加改变文档父窗口的方法
~~~
RequestDataPlayBack.h中增加相应的方法
- (void)changeDocParent:(UIView *) docParent;
~~~
7.回放增加drm加密功能(接口无变化)
8.增加语音连麦页面按钮
9.线路切换优化
v2.4.0
发布日期:2017.12.14
1.户禁言后提问的问题,只给当前用户自己展示(禁言后服务端返回的问题id全部为-1)
~~~
PlayForPCVC.m文件中相应的回调方法为:
- (void)onQuestionDic:(NSDictionary *)questionDic;
当用户被禁言后,如果该用户提问的话,服务端返回的本用户提问的问题id都为-1,因为问题id是作为key来存储在字典当中的,所以具有唯一性,如果需要展示被禁言的问题的话,需要用该问题 id+当前时间字符串作为组合key来存储在问题字典当中。
if([encryptId isEqualToString:@"-1"]) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateTime = [formatter stringFromDate:[NSDate date]];
encryptId = [NSString stringWithFormat:@"%@[%@]",encryptId,dateTime];
}
~~~
2.增加直播,回放,离线回放的实时画笔功能(接口无变化)
3.socket策略改变,直接使用服务器返回的域名和端口号(接口无变化)
4.播放器延迟策略优化,非低延迟模式下增加追帧功能(接口无变化)
5.直播过程中打电话,进入前后台策略优化(接口无变化)
6.增加日志打印功能
~~~
增加SaveLogUtil类,具体使用请参看《直播SDK开发者使用说明文档》
~~~
7.回放聊天记录的显示跟随播放的时间点进行同步
~~~
PlayBackVC.m文件中增加-(void)parseChatOnTime:(int)time;方法,传入当前播放器时间,来解析当前聊天内容,并追加展示。
~~~