[TOC]

日期: 2019-11-19

创盛视联数码科技(北京)有限公司

白板与文档组件说明文档

该组件主要用来同步展示课堂内的PPT、白板、画笔相关信息;

一、文档组件基础功能使用流程

该部分主要实现了该学员可以同步查看课堂内老师、学员对文档的相关操作;如果需要更高级功能请参考其它相关功能API进行实现;

1.1 Base库对象的创建

//1、base库对象头文件引用
#import <CCClassRoomBasic/CCClassRoomBasic.h>

//2、base库对象属性添加
@property(nonatomic,strong)CCStreamerBasic *stremer;

//3、base库对象属性添加
self.stremer = [CCStreamerBasic sharedStreamer];

1.2 文档组件初始化、设置事件监听

白板与文档组件的核心类是CCDocViewManager;

//在工程需要的地方引入头文件(也可以写一个组件类单独管理)
#import <CCDocLibrary/CCDocLibrary.h>

//1、文档组件初始化
- (CCDocVideoView *)ccVideoView
{
    if (!_ccVideoView) {
        CGRect frame = CGRectMake(0, 0, 200, 100);
        _ccVideoView = [[CCDocVideoView alloc]initWithFrame:frame];
        //2、文档组件添加监听
        [_ccVideoView addObserverNotify];
    }
    return _ccVideoView;
}

1.3 建立文档库与Base库的关系依赖

    //建立文档库与Base库关联
    - (void)addBasicClient:(CCStreamerBasic *)basic;

    //示例:
     [self.ccVideoView addBasicClient:self.stremer];

1.4 文档组件环境初始化(该步骤最好初始化完成后立即执行)

     //文档组件初始化,建议先于startDocView一段时间调用
    [self.docView initDocEnvironment];

1.5 将文档组件添加到需要展示的位置

    //该处以一个控制器的view为例
    [self.view addSubview:self.ccVideoView];

1.6 启动文档内容(文档、画笔)加载

   [self.docView startDocView];

1.7 文档资源释放(当退出课堂时执行)

     //1、移除监听
    [self.docView removeObserverNotify];
    if (self.docView)
    {   //2、释放内部资源
        [self.docView docRelease];
    }
    //3、释放文档实例对象
    _docView = nil;

二、文档进阶功能接口说明

该部分是基于上面第一部分功能做进阶功能的说明;

2.1 修改文档组件尺寸

/** 设置frame */
- (void)setDocFrame:(CGRect)frame;

2.2 添加组件相关监听事件

//添加监听
- (void)addObserverNotify;

2.3 移除文档监听事件

//移除监听
- (void)removeObserverNotify;

2.4 设置日志开关

//设置日志开关
+ (void)setLogState:(BOOL)open;

2.5 画笔权限管理

- (void)setDocEditable:(BOOL)canEdit;

object 参数说明:

参数名称 参数类型 说明 是否必须
canEdit BOOL YES:支持画笔;NO:不支持画笔 必选

2.6 设置画笔的粗细(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

/** 设置画笔宽度 */
- (void)setStrokeWidth:(CGFloat)width;

object 参数说明:

参数名称 参数类型 说明 是否必须
width CGFloat 设置画笔的粗细,精度为CGFloat类型 必选

2.7 设置画笔的颜色(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

/** 设置画笔颜色 */
- (void)setStrokeColor:(UIColor *)color;

object 参数说明:

参数名称 参数类型 说明 是否必须
color UIColor 画笔的颜色 必选

2.8 撤销画笔(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

/** 撤销画笔(可以撤销所有人) */
- (void)revokeLastDraw;
/** 撤销(只能撤销学生) */
- (void)revokeLastDrawByStudent;

2.9 清空画笔数据(支持老师端,或是被设为讲师,或是授权标注,才需要设置)

1、清空当前页的画笔数据:

/** 清除当前页的画笔数据 */
- (void)revokeAllDraw;

2、清空整个文档的画笔数据

/** 清空整个文档的画笔数据 */
- (void)revokeAllDocDraw;

2.10 橡皮擦功能

1、是否开启橡皮擦功能:

/** 设置当前是否是橡皮擦 */
- (void)setCurrentIsEraser:(BOOL)eraser;

object 参数说明:

参数名称 参数类型 说明 是否必须
eraser BOOL 是否开启橡皮擦 必选

2.11 手势支持功能

1、是否打开文档手势支持:

/** 设置手势开关 */
- (void)setGestureOpen:(BOOL)open;

如果关闭手势支持,文档会恢复缩放前的状态;

object 参数说明:

参数名称 参数类型 说明 是否必须
open BOOL 是否开启文档手势 必选

2.12 设为讲师/取消设为讲师

1、设为讲师

/** 设为讲师 */
- (BOOL)authUserAsTeacher:(NSString *)userId;
参数 参数说明
userId 指定的用户id

2、取消设为讲师

/** 取消设为讲师 */
- (BOOL)cancleAuthUserAsTeacher:(NSString *)userId;
参数 参数说明
userId 指定的用户id

2.13 授权标注/取消授权标注

1、授权标注

/** 授权标注 */
- (BOOL)authUserDraw:(NSString *)userId;
参数 参数说明
userId 指定的用户id

2、取消授权标注

/** 取消授权标注 */
- (BOOL)cancleAuthUserDraw:(NSString *)userId;
参数 参数说明
userId 指定的用户id

2.14 设置文档背景色

/** 设置文档区域背景色 */
- (void)setDocBackGroundColor:(UIColor *)color;

三、文档辅助功能接口说明

3.1 文档加载状态监听

1、文档加载监听

/** 文档加载状态监听 */
- (void)setOnDpCompleteListener:(CCDocLoadBlock)OnDpCompleteListener;

3.2 插播音视频功能相关

1、设置player容器

//设置 player frame
- (void)setVideoPlayerFrame:(CGRect)playerFrame;

2、修改player位置大小

//设置 player 容器
- (BOOL)setVideoPlayerContainer:(UIView *)playerContainer;

四、文档库、文档切换、文档翻页功能相关

该部分主要说明获取房间内的关联文档、文档切换、文档翻页相关功能;

4.1 获取房间关联文档

1、获取房间关联文档

/*!
 @method
 @abstract 获取房间机构文档
 @param roomID 房间ID(缺省为当前登录的房间ID)
 @param userID 房间ID(缺省为当前登录的房间userID)
 @param docID  文档ID(可选)
 @param docName 文档名字(可选)
 @param page    请求页码(获取指定页,默认返回第一页<可选>)
 @param size    请求每页条目数(每页的数据条数,默认每页50<可选>)
 @param completion 回调
 @return 操作结果
 */
- (BOOL)getRelatedRoomDocs:(NSString *)roomID
                    userID:(NSString *)userID
                     docID:(NSString *)docID
                   docName:(NSString *)docName
                pageNumber:(int)page
                  pageSize:(int)size
                completion:(CCComletionBlock)completion;

4.2 取消文档关联

1、取消房间文档关联

/*!
 @method
 @abstract 删除机构文档
 @param docID 文档ID
 @param roomID 房间ID(缺省为当前登录的房间ID)
 @param userID 房间ID(缺省为当前登录的房间userID)
 @param completion 回调
 @return 操作结果
 */
- (BOOL)unReleatedDoc:(NSString *)docID roomID:(NSString *)roomID userID:(NSString *)userID completion:(CCComletionBlock)completion;

4.3 doc切为白板

/** 切换到白板 */
- (void)docPageToWhiteBoard;

4.4 doc切换文档

/** 切换到另一个文档 */
- (void)docChangeTo:(CCDoc *)doc;

4.5 doc向前翻页

/** 向前翻页 */
- (void)docPageToFront;

4.6 doc回退翻页

/** 回退翻页 */
- (void)docPageToBack;

4.7 获取当前文档id

如果是白板则返回『』

/** 获取当前文档 */
- (NSString *)docCurrentDocId;

五、设为讲师、授权相关监听

5.1 添加消息监听

在需要画板的相关控制器内根据需求添加与移除监听事件

#pragma mark -- 接收
-(void)addObserver
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveSocketEvent:) name:CCNotiReceiveSocketEvent object:nil];
}
-(void)removeObserver
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

5.2 监听事件处理

收到监听事件后根据业务需求进行其它相关操作


- (void)receiveSocketEvent:(NSNotification *)noti
{
    CCSocketEvent event = (CCSocketEvent)[noti.userInfo[@"event"] integerValue];
    id value = noti.userInfo[@"value"];

if (event == CCSocketEvent_ReciveDrawStateChanged)
    {
               //授权标注事件
         CCUser *user = noti.userInfo[@"user"];
        if (user.user_drawState)
        {
            //被授权标注..客户开展后续自己的业务
        }
    }
    else if (event == CCSocketEvent_ReciveAnssistantChange)
    {
        //设为讲师事件
        CCUser *user = noti.userInfo[@"user"];
        if (user.user_AssistantState)
        {
            //被设为讲师..客户开展后续自己的业务
        }
    }
}

六、其它

6.1 基础功能集成步骤预览图

results matching ""

    No results matching ""