注:关于CCSDK支持iOS最低版本问题
1. 自 3.11.1 及后续版本,支持最低iOS版本为 iOS 9.0。
2. 3.11.0 及之前的版本,支持最低iOS版本为 iOS 8.0。
PS. 关于Xcode12最低版本支持 iOS 9.0 ,如何联调 iOS 8.0 设备?
注:选择项目中的 Build Settings ,搜索或找到 iOS Deployment Target ,点击 iOS 9.0 在展开的下拉菜单中选择 Other ,在文本框中输入 8.0 即可。
3.17.0
发布日期:2021.06.30
1.新增课件水印
2.文档模块重构优化
3.修复离线回放名称、简介修改未生效问题
升级此版本必须更换新版 HDBaseUtils.framework(版本号1.1.0)
注:【新版 HDBaseUtils.framework 为当前版本包中 SDK 文件夹下的 HDBaseUtils 】
3.16.2
发布日期:2021.06.10
1.更改跑马灯时间单位为毫秒
2.在线回放 "请求回放地址成功" API 变更
3.统一在线回放,聊天 问答 广播 随堂测 数据格式
RequestDataPlayBack.h "请求回放地址成功" API 变更
/**
* @brief 请求回放地址成功 (已废弃)
*
* 废弃版本 3.16.2
* 兼容版本 2021年12月1日后将不再维护
* 新方法: - (void)mediaPrepared;
*/
- (void)requestSucceed;
3.16.1
发布日期:2021.05.27
1.优化在线回放画笔显示
2.优化离线回放记忆播放画笔显示
3.修复SDK设置PPT背景颜色不生效问题
4.修复剪辑合并回放视频文档不同步问题
PlayParameter.h 属性变更 【 升级此版本SDK后必须修改 】
/**
* @brief ppt默认底色,不写默认为白色(@"#FFFFFF")
*/
@property(nonatomic, copy) NSString *defaultColor;//ppt默认底色,不写默认为白色(@"#FFFFFF")
RequestDataPlayBack.h API新增字段
/**
* 新增 id 新版聊天id
* 原有 chatId 旧版聊天id
*/
- (void)onParserChat:(NSArray *)arr;
/**
* 新增 userRole 新版回答角色
* 原有 answerUserRole 旧版回答角色
*/
- (void)onParserQuestionArr:(NSArray *)questionArr onParserAnswerArr:(NSArray *)answerArr;
3.16.0
发布日期:2021.05.20
1.提醒样式统一规范
2.连麦库升级优化
3.弹幕功能交互调整,样式优化
4.新增源数据静态化,提高系统兼容性
5.直播、回放播放器样式优化,竖屏增加“更多”设置
6.修复修改在线回放名称及简介不生效问题
7.修复离线回放画笔异常问题
8.修复部分情况下demo崩溃问题
RequestDataPlayBack.h 文件 新增API
/**
* 3.16.0 new
* @brief 获取全量聊天数据
* @param completion 数据回调
*/
- (void)fetchAllChat:(void (^)(NSArray * results))completion;
/**
* 3.16.0 new
* @brief 获取全量问答数据
* @param completion 数据回调
*/
- (void)fetchAllQA:(void (^)(NSArray * results))completion;
/**
* 3.16.0 new
* @brief 获取全量广播数据
* @param completion 数据回调
*/
- (void)fetchAllBoardcast:(void (^)(NSArray * results))completion;
/**
* 3.16.0 new
* @brief 获取全量随堂测数据
* @param completion 数据回调
*/
- (void)fetchAllPractic:(void (^)(NSArray * results))completion;
/**
* 3.16.0 new
* @brief 获取全量翻页数据
* @param completion 数据回调
*/
- (void)fetchAllPageChange:(void (^)(NSArray *results))completion;
RequestDataPlayBack.h 文件 API 新增字段
/**
* @brief 获取房间信息,主要是要获取直播间模版来类型,根据直播间模版类型来确定界面布局
* 房间信息
*
* 3.16.0 新增 recordInfo 字段
*
* 新增参数名称 类型 是否必须 示例
* recordInfo NSDictionary (非必须) @{@"title":@"房间标题",@"description":@"简介信息"}
*/
-(void)roomInfo:(NSDictionary *)dic;
3.15.4
发布日期:2021.04.29
1.修复在线回放部分文档无法翻页的问题
2.优化聊天消息
3.15.3
发布日期:2021.04.15
1.修复demo命名错误
3.15.2
发布日期:2021.04.12
1.优化直播和回放文档白屏,提升文档稳定性
RequestData.h RequestDataPlayBack.h API变更
/**
* @brief 文档加载状态
* index
* 0 文档组件初始化完成
* 1 动画文档加载完成
* 2 非动画翻页加载成功
* 3 文档组件加载失败
* 4 非动画翻页加载失败
* 5 文档动画加载失败
* 6 画板加载失败
* 7 极速动画翻页加载成功
* 8 极速动画翻页加载失败
*/
- (void)docLoadCompleteWithIndex:(NSInteger)index;
3.15.1
发布日期:2021.03.29
1.API增加防录屏权限开关
RequestData.h RequestDataPlayBack.h OfflinePlayBack.h 新增api
/** * @brief 设置防录屏功能 * @param isEnable YES 开启 NO 关闭(默认) */- (void)setAntiRecordScreen:(BOOL)isEnable;
2.直播、在线回放、离线回放数据增加排序
3.优化在线回放画笔数据,减少崩溃率
4.修复SDK异常崩溃问题
v3.15.0
发布日期:2021.03.18
1.demo及SDK新增查看回放打点信息
RequestDataPlayBack.h 新增
/** * @brief 回放打点数据 * @param dotList 打点信息 * @[HDReplayDotModel,HDReplayDotModel] */- (void)HDReplayDotList:(NSArray *)dotList;
PlayParameter 新增 HDReplayDotModel
/** 打点时间:单位:S */@property (nonatomic, assign) NSInteger time;/** 打点描述 */@property (nonatomic, copy) NSString * _Nullable desc;
2.优化播放器侧边栏交互
3.修复操作后记忆播放提示消失问题
4.修复WiFi切4G视频无法播放问题
5.修复部分回放崩溃问题
v3.14.1
发布日期:2021.02.25
1.修复iOS14来电中断播放后,无法恢复播放问题
2.Demo优化:修复观看回放切换到直播后可能出现聊天数据未清除问题
v3.14.0
发布日期:2021.02.18
1.直播回放demo及SDK支持防录屏功能
2.直播多清晰重构增强
3.回放取消liveid的兼容
新增:
防止录屏:SDK默认开启防止录屏功能,自动检测是否开始或停止录屏,当录屏是SDK进入放录屏模式
api变更:
PlayParameter.h 废弃liveid
/** * @brief 直播ID,回放时才用到(已废弃) */@property(nonatomic, copy)NSString *liveId;
RequestData.h
废弃api
/** * @brief 房间的音视频线路 (已废弃) * @param model LineModel 详情 * * 废弃版本 3.14.0 * 兼容版本 2021年11月08日之后将不再维护 * 新方法 清晰度回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * 线路回调 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; */- (void)HDReceivedVideoAudioLinesWithModel:(LineModel *)model;/** * @brief 切换线路 监听HDReceivedVideoAudioLinesWithModel代理获取线路/清晰度等信息 (已废弃) * @param quality 清晰度 0-原画;200-流畅;300-标清;音频传空字符串 * @param stream 线路 从0开始,如两条线路则传0或1 * results { //切换结果 * success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 * } * 废弃版本 3.14.0 * 兼容版本 2021年11月08日之后将不再维护 * 新方法 切换播放器类型 - (void)changePlayMode:(PLAY_MODE_TYEP)mode; * 切换清晰度 - (void)changeQuality:(NSString *)quality completion:(void (^)(NSDictionary * results))completion; * 切换线路 - (void)changeLine:(NSInteger)index completion:(void (^)(NSDictionary * results))completion; */- (void)changeLineWithQuality:(NSString *)quality Stream:(NSInteger)stream completion:(void (^)(NSDictionary * results))completion;
新增api
/** * The New Method (3.14.0) * @brief 是否开启音频模式 * @param hasAudio HAVE_AUDIO_LINE_TURE 有音频 HAVE_AUDIO_LINE_FALSE 无音频 * * 触发回调条件 1.初始化SDK登录成功后 */- (void)HDAudioMode:(HAVE_AUDIO_LINE)hasAudio;/** * The New Method (3.14.0) * @brief 房间所包含的清晰度 (会多次回调) * @param dict 清晰度数据 * 清晰度数据 key(包含的键值) type(数据类型) description(描述) * qualityList(清晰度列表) array @[HDQualityModel(清晰度详情),HDQualityModel(清晰度详情)] * currentQuality(当前清晰度) object HDQualityModel(清晰度详情) * * 触发回调条件 1.初始化SDK登录成功后 * 2.主动调用切换清晰度方法 * 3.主动调用切换视频模式回调 */- (void)HDReceivedVideoQuality:(NSDictionary *)dict;/** * The New Method (3.14.0) * @brief 房间包含的音视频线路 (会多次回调) * @param dict 线路数据 * 线路数据 key(包含的键值) type(数据类型) description(描述) * lineList(线路列表) array @[@"line1",@"line2"] * indexNum(当前线路下标) integer 0 * * 触发回调条件 1.初始化SDK登录成功后 * 2.主动调用切换清晰度方法 * 3.主动调用切换线路方法 * 4.主动调用切换音视频模式回调 */- (void)HDReceivedVideoAudioLines:(NSDictionary *)dict;/** * @brief 切换线路 监听HDReceivedVideoAudioLinesWithModel代理获取线路/清晰度等信息 (已废弃) * @param quality 清晰度 0-原画;200-流畅;300-标清;音频传空字符串 * @param stream 线路 从0开始,如两条线路则传0或1 * results { //切换结果 * success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 * } * 废弃版本 3.14.0 * 兼容版本 2021年11月08日之后将不再维护 * 新方法 切换播放器类型 - (void)changePlayMode:(PLAY_MODE_TYEP)mode; * 切换清晰度 - (void)changeQuality:(NSString *)quality completion:(void (^)(NSDictionary * results))completion; * 切换线路 - (void)changeLine:(NSInteger)index completion:(void (^)(NSDictionary * results))completion; */- (void)changeLineWithQuality:(NSString *)quality Stream:(NSInteger)stream completion:(void (^)(NSDictionary * results))completion;/** * The New Method (3.14.0) * @brief 切换播放类型 * @param mode PLAY_MODE_TYEP_VIDEO 视频模式(默认) * PLAY_MODE_TYEP_AUDIO 音频模式(当前回放包含音频线路) * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换播放器类型 切换为音频,回调 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; * 切换为视频,回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; * */- (void)changePlayMode:(PLAY_MODE_TYEP)mode completion:(void (^)(NSDictionary * results))completion;/** * The New Method (3.14.0) * @brief 切换清晰度 * @param quality 清晰度 * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换清晰度回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; */- (void)changeQuality:(NSString *)quality completion:(void (^)(NSDictionary * results))completion;/** * The New Method (3.14.0) * @brief 切换线路 * @param index 选择线路下标 * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换线路回调方法 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; */- (void)changeLine:(NSInteger)index completion:(void (^)(NSDictionary * results))completion;
v3.13.0
发布日期:2021.01.11
1.直播demo支持后进入用户查看问卷
2.直播demo新增视频清晰度
3.在线回放demo及SDK新增切换视频清晰度
4.在线回放、直播demo新增切换线路
5.在线回放、直播demo新增只听音频功能
6.直播demo播放器、弹幕样式优化
7.api变更
PlayParameter.h 新增枚举类型
/** * 音视频模式 * PLAY_MODE_TYEP_VIDEO 视频 * PLAY_MODE_TYEP_AUDIO 音频 */typedef NS_ENUM(NSUInteger, PLAY_MODE_TYEP) { PLAY_MODE_TYEP_VIDEO,//视频 PLAY_MODE_TYEP_AUDIO,//音频};/** * 是否有音频线路 * HAVE_AUDIO_LINE_TURE 有音频线路 * HAVE_AUDIO_LINE_FALSE 无音频线路 */typedef NS_ENUM(NSUInteger, HAVE_AUDIO_LINE) { HAVE_AUDIO_LINE_TURE,//有音频线路 HAVE_AUDIO_LINE_FALSE,//无音频线路};
新增 HDQualityModel 类
/** 清晰度 */@property (nonatomic, copy) NSString * _Nonnull quality;/** 描述 */@property (nonatomic, copy) NSString * _Nonnull desc;
RequestDataPlayBack.h 废弃api
/** * @brief 接收到播放线路 (已废弃) * 例:videoArray元素个数 2 代表2条线路 changeLineWithPlayParameter传0或1 * * 废弃版本 3.13.0 * 兼容版本 2021年10月08日之后将不再维护 * 新方法 清晰度回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * 线路回调 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; * */-(void)numberOfReceivedLinesWithVideo:(NSArray *)videoArray audio:(NSArray *)audioArray;/** * @brief 切换线路 (已废弃) * param * disableVideo 视频传no,音频传yes(账号开启音频模式下才可以传yes) * lineNum 线路 例:-(void)numberOfReceivedLinesWithVideo:(NSArray *)videoArray audio:(NSArray *)audioArray;中videoArray元素个数为2 则传0或1 * results: success 0 切换成功 -1切换失败 -2 切换频繁 currentIndex 当前播放线路 * * 废弃版本 3.13.0 * 兼容版本 2021年10月08日之后将不再维护 * 新方法 切换播放器类型 - (void)changePlayMode:(PLAY_MODE_TYEP)mode; * 切换清晰度 - (void)changeQuality:(NSString *)quality completion:(void (^)(NSDictionary * results))completion; * 切换线路 - (void)changeLine:(NSInteger)index completion:(void (^)(NSDictionary * results))completion; * */- (void)changeLineWithPlayParameter:(PlayParameter *)param completion:(void (^)(NSDictionary * results))completion;
RequestDataPlayBack.h 新增api回调
/** * The New Method (3.13.0) * @brief 是否开启音频模式 * @param hasAudio HAVE_AUDIO_LINE_TURE 有音频 HAVE_AUDIO_LINE_FALSE 无音频 * * 触发回调条件 1.初始化SDK登录成功后 */- (void)HDAudioMode:(HAVE_AUDIO_LINE)hasAudio;/** * The New Method (3.13.0) * @brief 房间所包含的清晰度 (会多次回调) * @param dict 清晰度数据 * 清晰度数据 key(包含的键值) type(数据类型) description(描述) * qualityList(清晰度列表) array @[HDQualityModel(清晰度详情),HDQualityModel(清晰度详情)] * currentQuality(当前清晰度) object HDQualityModel(清晰度详情) * * 触发回调条件 1.初始化SDK登录成功后 * 2.主动调用切换清晰度方法 * 3.主动调用切换视频模式回调 */- (void)HDReceivedVideoQuality:(NSDictionary *)dict;/** * The New Method (3.13.0) * @brief 房间包含的音视频线路 (会多次回调) * @param dict 线路数据 * 线路数据 key(包含的键值) type(数据类型) description(描述) * lineList(线路列表) array @[@"line1",@"line2"] * indexNum(当前线路下标) integer 0 * * 触发回调条件 1.初始化SDK登录成功后 * 2.主动调用切换清晰度方法 * 3.主动调用切换线路方法 * 4.主动调用切换音视频模式回调 */- (void)HDReceivedVideoAudioLines:(NSDictionary *)dict;
RequestDataPlayBack.h 新增api主动调用方法
/** * The New Method (3.13.0) * @brief 切换播放类型 * @param mode PLAY_MODE_TYEP_VIDEO 视频模式(默认) * PLAY_MODE_TYEP_AUDIO 音频模式(当前回放包含音频线路) * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换播放器类型 切换为音频,回调 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; * 切换为视频,回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; * */- (void)changePlayMode:(PLAY_MODE_TYEP)mode completion:(void (^)(NSDictionary * results))completion;/** * The New Method (3.13.0) * @brief 切换清晰度 * @param quality 清晰度 * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换清晰度回调 - (void)HDReceivedVideoQuality:(NSDictionary *)dict; * - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; */- (void)changeQuality:(NSString *)quality completion:(void (^)(NSDictionary * results))completion;/** * The New Method (3.13.0) * @brief 切换线路 * @param index 选择线路下标 * @param completion 切换结果 * { success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 } * * 切换线路回调方法 - (void)HDReceivedVideoAudioLines:(NSDictionary *)dict; */- (void)changeLine:(NSInteger)index completion:(void (^)(NSDictionary * results))completion;
v3.12.2
发布日期:2020.12.25
1.更新 “ 收到播放直播状态api ”,恢复成和3.12之前版本保持一致
/** * @brief 收到播放直播状态 0.正在直播 1.未开始直播 */- (void)getPlayStatue:(NSInteger)status;
注:v3.12.2此次更新针对已对接3.12.0、3.12.1版本SDK,老版本的SDK无需修改。
v3.12.1
发布日期:2020.12.18
1.修复直播无法接收问卷问题
2.修复直播文档翻页异常问题
v3.12.0
发布日期:2020.12.16
-
支持抽奖2.0,新增显示抽奖名称、查看中奖用户、中奖信息收集等功能
代理方法(可选)/** * @brief 抽奖2.0 抽奖信息回调 (该功能需要单独开启) * @param model NewLotteryMessageModel 详情 */- (void)HDOnLotteryWithModel:(NewLotteryMessageModel *)model;主动调用(可选)/** * @brief 抽奖2.0 查询抽奖状态 */- (void)queryLotteryStatus;/** * @brief 抽奖2.0 提交中奖用户信息 * @param collectInfos 用户信息 * collectInfos = @[@{@"index":@(0),@"value":@""}]; * @param lotteryId 中奖订单ID (非必选) * @param completion 请求结果回调 */- (void)commitLottery:(NSArray *)collectInfos lotteryId:(NSString *)lotteryId completion:(void (^)(BOOL success))completion;
-
优化直播播放逻辑
-
修复在线回放文档异常显示问题
-
修复播放器崩溃问题
-
播放器状态新增api
代理方法(可选)/** * @brief 播放器初始化完成 (会多次回调) */- (void)HDMediaPlaybackIsPreparedToPlayDidChange:(NSDictionary *)dict;
-
收到直播状态api更改
/** * @brief 收到播放直播状态 1.正在直播 0.未开始直播 */- (void)getPlayStatue:(NSInteger)status;注:原有直播状态 0 正在直播 1 未开始直播
-
切换线路及清晰度api变更
已删除
/** * @brief 切换源,firRoadNum表示一共有几个线路,secRoadKeyArray表示每个线路对应的清晰度 */- (void)firRoad:(NSInteger)firRoadNum secRoadKeyArray:(NSArray *)secRoadKeyArray;/** * @brief 切换播放线路和清晰度 * firIndex表示第几个线路 * key表示该线路对应的secRoadKeyArray里面的元素 */- (void)switchToPlayUrlWithFirIndex:(NSInteger)firIndex key:(NSString *)key;
新增
代理方法(可选)/** * @brief 房间的音视频线路 * @param model LineModel 详情 */- (void)HDReceivedVideoAudioLinesWithModel:(LineModel *)model;主动调用(可选)/** * @brief 切换线路 监听HDReceivedVideoAudioLinesWithModel代理获取线路/清晰度等信息 * @param quality 清晰度 0-原画;200-流畅;300-标清;音频传空字符串 * @param stream 线路 从0开始,如两条线路则传0或1 * results { //切换结果 * success 0 切换成功 -1切换失败 -2 切换频繁 * reason 错误原因 * } */- (void)changeLineWithQuality:(NSString *)quality Stream:(NSInteger)stream completion:(void (^)(NSDictionary * results))completion;
v3.11.3
发布日期:2020.11.06
- 修复统计上报问题;
- 回放ID长度支持32位;
- 优化视频播放器加载机制,增强兼容性;
v3.11.2
发布日期:2020.10.20
- 私聊屏蔽功能,admin启用私聊屏蔽后,观看端屏蔽入口
- 直播、回放无法播放时支持刷新重新加载
- 小窗视频支持显示加载速度
- SDK兼容天猫精灵蓝牙设备播放
- SDK优化蓝牙耳机连麦功能
- 修复横屏观看直播,聊天输入框遮挡问题
v3.11.1
发布日期:2020.09.22
1.优化文档和画笔兼容性; 2.修复接口验证直播间跑马灯内容展示错误问题;
v3.11.0
发布日期:2020.09.07
1.直播打卡支持自定义打卡提示语
/** * @brief 收到开始打卡 * dic { "punchId": "punchId", "expireTime": "2019-10-26 10:00:00", "remainDuration": 124 "tips" // 没有提示语则不返回该字段 (新增) } * 当没有设置时长,即无过期时间时 * { "punchId": "asasdasdasdasd", "remainDuration": -1 //其中-1表示剩余无限时间。 } */-(void)hdReceivedStartPunchWithDict:(NSDictionary *)dic;
2.直播新增用户进出直播间消息通知
/** * @brief 用户进出直播间提示 * @param model RemindModel 详情 */- (void)HDUserRemindWithModel:(RemindModel *)model;
3.直播SDK新增用户禁言群发消息通知
/** * @brief 禁言用户提示 * @param model BanChatModel 详情 */- (void)HDBanChatBroadcastWithModel:(BanChatModel *)model;
4.在线回放SDK新增播放状态api
/** * @brief 视频准备播放 * @param dict 数据 */- (void)HDMediaPlaybackIsPreparedToPlayDidChange:(NSDictionary *)dict;
5.优化WiFi切换4G视频播放及自由翻页PPT闪动问题
v3.10.0
发布日期:2020.08.24
1.回放demo回放新增记忆播放功能
2.新增视频加载的网络速度(直播、在线回放)
/** * @brief 视频加载速度 * @param speed 视频加载速度字符串 */- (void)onBufferSpeed:(NSString *)speed;
3.直播demo随堂测、答题卡新增收起功能及逻辑优化
4.SDK新增回放播放器时间API(在线回放,离线回放)
/** * @brief 播放器时间 * @param currentTime 当前时间 * @param totalTime 总时间 */- (void)HDPlayerCurrentTime:(NSTimeInterval)currentTime totalTime:(NSTimeInterval)totalTime;
5.SDK新增视频播放器状态API(直播,在线回放,离线回放)
/** * @brief 视频状态改变 * @param state * HDMoviePlaybackStateStopped 播放停止 * HDMoviePlaybackStatePlaying 开始播放 * HDMoviePlaybackStatePaused 暂停播放 * HDMoviePlaybackStateInterrupted 播放间断 * HDMoviePlaybackStateSeekingForward 播放快进 * HDMoviePlaybackStateSeekingBackward 播放后退 */- (void)HDMoviePlayBackStateDidChange:(HDMoviePlaybackState)state;/** * @brief 视频加载状态 * @param state 播放状态 * HDMovieLoadStateUnknown 未知状态 * HDMovieLoadStatePlayable 视频未完成全部缓存,但已缓存的数据可以进行播放 * HDMovieLoadStatePlaythroughOK 完成缓存 * HDMovieLoadStateStalled 数据缓存已经停止,播放将暂停 */- (void)HDMovieLoadStateDidChange:(HDMovieLoadState)state;/** * @brief 视频播放完成原因 * @param reason 原因 * HDMovieFinishReasonPlaybackEnded 自然播放结束 * HDMovieFinishReasonUserExited 用户人为结束 * HDMovieFinishReasonPlaybackError 发生错误崩溃结束 */- (void)HDMoviePlayerPlaybackDidFinish:(HDMovieFinishReason)reason;
6.优化SDK ,提升稳定性
7.demo层iOS8系统适配
v3.9.1
发布日期: 2020.08.03
1.优化离线回放文档白板不显示
2.优化离线回放播放完成显示逻辑
3.优化进入直播间,断网重连问题
4.修复低帧率直播无声音问题
5.取出ijk的log日志
6.支持真机模拟器
v3.9.0
发布日期: 2020.07.06
-
新增直播删除广播;
//代理方法/** * @brief 删除广播 * @param dic 删除数据 * dic {action //操作 1.删除 id //广播id } */- (void)broadcast_delete:(NSDictionary *)dic;
-
直播新增播放失败自动切换线路重试机制;
-
直播、回放、离线回放 新增 PPT支持切换模式;
//主动调用/** * @brief 主动调用方法 用于调整PPT缩放模式 * @param docFrame 文档的frame * @param PPTScalingMode PPT缩放模式 * 1.一种是全部填充屏幕,可拉伸变形, * 2.第二种是等比缩放,横向或竖向贴住边缘,另一方向可以留黑边, * 3.第三种是等比缩放,横向或竖向贴住边缘,另一方向出边界,裁剪PPT,不可以留黑边, * 4.根据直播间文档显示模式的返回值进行设置(推荐)(The New Method) * * 需要调整docFrame 请直接调用 - (void)changeDocFrame:(CGRect)docFrame;方法 */- (void)changeDocFrame:(CGRect)docFrame withPPTScalingMode:(NSInteger)PPTScalingMode;
-
回放、离线回放demo新增手势拖动功能;
-
回放新增回放音频;
-
直播在线人数监听增加自动返回方法;
-
回放文档前后台切换优化;
-
修复回放文档卡顿、画笔丢失问题;
v3.8.2
发布日期: 2020.06.19
- 优化文档异常导致闪退
v3.8.1
发布日期: 2020.06.05
- 修复demo bug,提升稳定性
v3.8.0
发布日期: 2020.05.20
-
新增回放线路切换;
//代理方法/** *接收到播放线路 例:int值 2 代表两条 changeLineWithNum传0或1 */-(void)numberOfReceivedLines:(NSInteger)linesCount;//调用方法/** * @brief 切换线路 * index 传入numberOfReceivedLines的返回值 如:返回2 则传0或1 * results: success 0 切换成功 -1切换品失败 -2 切换频繁 currentIndex 当前播放线路 */- (void)changeLineWithNum:(NSInteger)index completion:(void (^)(NSDictionary * results))completion;
-
新增跑马灯功能;
/** * @brief 跑马灯信息,需要开启跑马灯功能且iOS 9.0以上*/-(void)receivedMarqueeInfo:(NSDictionary *)dic;
-
新增课件水印功能;
-
新增直播倒计时功能;
-
回放翻页列表新增文档备注;
-
demo新增是否显示弹幕;
-
demo新增是否显示在线人数;
-
demo随堂测支持判断题;
-
demo文档适合宽度支持滚动查看;
-
demo新增离线回放;
-
优化连麦稳定性;
-
优化弹窗提示语;
-
优化demo横屏聊天;
-
优化问答模块性能;
-
优化文档加载回调及重试;
-
去除UIwebview相关组件;
-
修复bug,提升稳定性;
v3.7.1
发布日期: 2020.03.16
-
新增聊天禁言删除历史记录;
/** * @brief 收到聊天禁言并删除聊天记录 * viewerId 禁言用户id,是自己的话别删除聊天历史,其他人需要删除该用户的聊天 */-(void)onBanDeleteChat:(NSDictionary *) viewerDic;
-
修复iOS8聊天,文档兼容问题;
-
优化文档加载兼容问题;
v3.7.0
发布日期: 2020.01.06
-
新增获取在线讲师和助教列表方法;
/**收到老师列表 teachers = ( { id = "";//老师id ip = "";//IP地址 name = "";老师昵称 role = teacher;//角色 } );*/-(void)onOnlineTeachers:(NSDictionary *)dic;
-
新增获取直播间设置方法;
/** * @brief 房间设置信息 * dic{ "allow_chat" = true;//是否允许聊天 "allow_question" = true;//是否允许问答 "room_base_user_count" = 0;//房间基础在线人数 "source_type" = 0;//对应receivedSwitchSource方法的source_type} *ps:当房间类型没有聊天或者问答时,对应的字段默认为true*/-(void)roomSettingInfo:(NSDictionary *)dic;
-
demo新增视频截图方法;
//获取视频截图- (void)thumbnailImageAtCurrentTime { UIImage *image = [self.requestData.ijkPlayer thumbnailImageAtCurrentTime]; NSLog(@"获取视频截图%@",image);}
-
demo新增多个回放切换方法;
/** 切换回放,需要重新配置参数 */- (void)changeVideo;
-
优化demo聊天模块;
v3.6.0
发布日期: 2019.11.29
1.新增打卡功能
监听方法:/** * @brief 收到开始打卡 * dic { "punchId": "punchId", "expireTime": "2019-10-26 10:00:00", "remainDuration": 124 } * 当没有设置时长,即无过期时间时 * { "punchId": "asasdasdasdasd", "remainDuration": -1 //其中-1表示剩余无限时间。 } */-(void)hdReceivedStartPunchWithDict:(NSDictionary *)dic;/** * @brief 收到结束打卡 * dic{ "punchId": "punchId" } */-(void)hdReceivedEndPunchWithDict:(NSDictionary *)dic;/** * @brief 收到打卡提交结果 * dic{ "success": true, "data": { "isRepeat": false//是否重复提交打卡 } } */-(void)hdReceivedPunchResultWithDict:(NSDictionary *)dic;主动方法:/**查询打卡信息*/- (void)hdInquirePunchInformation;/**提交打卡@param punchId 打卡id*/- (void)hdCommitPunchWithPunchId:(NSString *)punchId;
2.新增视频状态
/** * @brief 视频状态 * rseult playing/paused/loading */-(void)videoStateChangeWithString:(NSString *) result;
3.随堂测
直播观看/** * @brief 获取随堂测 * @param practiceId 随堂测ID(没有传@"") */-(void)getPracticeInformation:(NSString *)practiceId;ps:原有获取随堂测方法已删除注意:修改前:停止随堂测后进入直播间者获取不到统计排名修改后:停止随堂测后进入直播者可以获取统计排名回放观看主动方法/** 获取随堂测信息 */-(void)getPracticeInformation;监听方法/** * @brief 接收到随堂测 * rseultDic 随堂测内容 */-(void)receivePracticeWithDic:(NSDictionary *) resultDic;
4.文档组件本地化,提升加载速度
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可以对学员进行分组
登录时可选传groupIdparameter.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_type10 在允许重复登录前提下,后进入者会登录会踢出先前登录者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)** 回调当前翻页的页数信息 <br/>* 白板docTotalPage一直为0, pageNum从1开始<br/>* 其他文档docTotalPage为正常页数,pageNum从0开始<br/>* @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;方法,传入当前播放器时间,来解析当前聊天内容,并追加展示。 ~~~