WHITE_BOARD_EXPORT @interface ByteWhiteBoard : NSObject
核心方法, 白板接口类。调用 getCurrentWhiteBoard: 将返回当前的白板实例,你可以通过这个类来操作当前白板。
- (int)updateByteWhiteBoardDelegate:(id<ByteWhiteBoardDelegate>)delegate;
设置事件回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| delegate | id<ByteWhiteBoardDelegate> | 事件回调 |
返回值
调用结果 0: 成功
- (void)getWhiteBoardId:(void (^)(NSInteger))block;
获取当前的白板 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSInteger) | 接收白板 ID 的回调 |
- (void)getWhiteBoardRoomId:(void (^)(NSString *_Nonnull))block;
获取当前白板所在的房间 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSString * ) | 接收白板房间 ID 的回调 |
- (void)getCurrentPageId:(void (^)(NSString *))block;
获取当前页面的 PageId。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSString *) | 接收白板页面 ID 的回调 |
- (int)setWritable:(BOOL)writable;
设置当前白板是否可以编辑。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| writable | BOOL | 当前白板是否可编辑 |
返回值
调用结果 0: 成功
- (void)setEditType:(ByteWhiteBoardShapeType)shapeType;
设置编辑动作类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| shapeType | ByteWhiteBoardShapeType | 编辑动作类型,详见 ByteWhiteBoardShapeType。 |
注意
如果默认的光标图形无法满足你的需求,调用 setCursorStyle,为不同工具指定光标图形和样式。
- (void)setZoomOperation:(ByteWhiteBoardZoomOperation *)zoomOperation;
设置手势缩放拖拽。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| zoomOperation | ByteWhiteBoardZoomOperation * | 手势缩放拖拽,参见 ByteWhiteBoardZoomOperation |
- (void)setPenSize:(NSInteger)size;
设置画笔笔迹宽度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | NSInteger | 笔迹宽度,单位为画布宽度的万分之一 |
- (int)setPenColor:(UIColor *)color;
设置画笔颜色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| color | UIColor * | 格式为 ARGB_8888 |
- (int)setShapeSize:(NSInteger)width;
设置形状线条宽度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| width | NSInteger | 形状线条宽度,单位为画布宽度的万分之一 |
- (int)setShapeColor:(UIColor *)color;
设置图形边框颜色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| color | UIColor * | 颜色,格式为 ARGB_8888 |
- (int)setTextFontSize:(NSInteger)size;
设置文本字号大小。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | NSInteger | 文字的高度,单位为画布高的万分之一 |
- (int)setTextColor:(UIColor *)color;
设置文本颜色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| color | UIColor * | 颜色,格式为 ARGB_8888 |
- (void)setSelectionBoxStyle:(ByteWhiteBoardAnchor *)anchor;
设置选择框样式。如果默认的选择框样式无法满足你的需求,调用本接口,并传入需要修改的属性。默认样式详见 ByteWhiteBoardAnchor。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| anchor | ByteWhiteBoardAnchor * | 选择框样式。详见 ByteWhiteBoardAnchor。 |
- (void)enableCursorSync:(BOOL)enable;
开启光标同步功能。开启后,房间中其他用户可以看到当前用户光标的实时移动轨迹。默认关闭。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否开启
|
- (void)setCursorStyle:(NSDictionary<NSString *, ByteWhiteBoardCursorInfo *> *)styleConfig;
自定义不同的工具光标样式。如果默认的光标图形无法满足你的需求,调用本接口,为不同工具过指定光标图形和样式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| styleConfig | NSDictionary<NSString *, ByteWhiteBoardCursorInfo *> * | 自定义光标样式,字典类型的 key 为 ByteWhiteBoardCursorType 枚举类对应的字符串,value 为 ByteWhiteBoardCursorInfo 类型。 |
- (void)addImage:(NSString *)url rect:(ByteWhiteBoardImageRect *)imageRect completionHandler:(void (^)(ByteWhiteBoardAddImage))block;
在当前页面中添加图片。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | NSString * | 图片的 url |
| imageRect | ByteWhiteBoardImageRect * | 图片的位置信息 ByteWhiteBoardImageRect,如果传递空值则默认居中处理 |
| block | void(^)(ByteWhiteBoardAddImage) | 接收添加图片结果回调。详见 ByteWhiteBoardAddImage。 |
- (void)addVideo:(NSString *)url title:(NSString *)videoTitle completionHandler:(void (^)(ByteWhiteBoardAddMedia, NSString*))block;
在当前页面中添加视频,只支持 mp4 格式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | NSString * | 视频的 url。建议视频文件的大小不超过 1 GB。你需要将用户的视频文件上传到对象存储服务空间中,并获取访问链接。 |
| videoTitle | NSString * | - |
| block | void(^)(ByteWhiteBoardAddMedia, NSString *) | 接收添加视频结果回调。详见 ByteWhiteBoardAddMedia。 |
注意
- (void)addAudio:(NSString *)url title:(NSString *)audioTitle completionHandler:(void (^)(ByteWhiteBoardAddMedia, NSString*))block;
在当前页面中添加音频,只支持 mp3 格式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | NSString * | 音频的 url。建议音频文件的大小不超过 50 MB。你需要将用户的音频文件上传到对象存储服务空间中,并获取访问链接。 |
| audioTitle | NSString * | - |
| block | void(^)(ByteWhiteBoardAddMedia, NSString *) | 接收添加音频结果回调。详见 ByteWhiteBoardAddMedia。 |
注意
- (void)undo;
撤销本端对白板的编辑操作。
当 byteWhiteBoard:onCanUndoStateChanged: 返回的状态为 false 时,调用本接口无效。
- (void)redo;
重做本端对白板的编辑操作。
当 byteWhiteBoard:onCanRedoStateChanged: 返回的状态为 false 时,调用本接口无效。
- (int)clearPage;
清除页面。
调用成功后在房间内所有客户端触发 byteWhiteBoard:onClearPage:
返回值
调用结果 0: 成功
- (int)createPages:(NSArray<ByteWhiteBoardPageInfo *> *)infos index:(NSInteger)insertPageIndex isAutoFlip:(BOOL)autoFlip;
新建多个白板页。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| infos | NSArray<ByteWhiteBoardPageInfo *> * | 白板页的配置,新增白板页个数和infos配置的个数相同 |
| insertPageIndex | NSInteger | 创建的页面将插入到指定的第几个页面之后,默认插入到当前页后面 |
| autoFlip | BOOL | 是否自动翻页 |
返回值
调用结果 0: 成功
- (int)removePages:(NSArray<NSString *> *)pageIdList flip:(NSInteger)flipPageIndex;
按照指定的索引号,删除白板页。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pageIdList | NSArray<NSString *> * | 需要删除的页面 ID 列表 |
| flipPageIndex | NSInteger | 删除后跳转的页面 ID。传空值表示自动翻页:
|
返回值
调用结果 0: 成功
注意
成功调用后将触发 byteWhiteBoard:onRemovePages:boardId:pages: 回调。
- (int)flipPage:(NSInteger)pageIndex;
白板翻页。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pageIndex | NSInteger | 目标页 Index |
返回值
调用结果 0: 成功。调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:
- (void)flipNextPage;
白板翻到下一页。 调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:
- (void)flipPrevPage;
白板翻到上一页。
调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:
- (int)setPageBackground:(ByteWhiteBoardBackgroundInfo *)info;
修改当前白板页面的背景设置,例如背景图片颜色等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| info | ByteWhiteBoardBackgroundInfo * | 当前白板页面的背景设置 |
返回值
调用结果 0: 成功
注意
- (int)setBoardBackground:(ByteWhiteBoardBackgroundInfo *)info;
修改当前白板的背景设置,例如背景图片颜色等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| info | ByteWhiteBoardBackgroundInfo * | 背景设置。详见 ByteWhiteBoardBackgroundInfo |
返回值
调用结果 0: 成功
注意
- (void)getCurrentPageInfo:(void (^)(ByteWhiteBoardPageInfo *_Nonnull))block;
获取当前页面信息。详见 ByteWhiteBoardPageInfo
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(ByteWhiteBoardPageInfo * ) | - |
- (void)getCurrentPageIndex:(void (^)(NSInteger))block;
获取当前页面索引。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSInteger) | 接收当前白板页索引的回调 |
- (void)getAllPageInfo:(void (^)(NSArray<ByteWhiteBoardPageInfo *> *_Nonnull))block;
获取所有页面信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSArray<ByteWhiteBoardPageInfo *> * ) | 接收所有白板页信息的回调,详见 ByteWhiteBoardPageInfo |
- (void)getPageInfoByIndex:(NSInteger)index completionHandler:(void (^)(ByteWhiteBoardPageInfo *_Nonnull))block;
通过索引号获取白板页信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | NSInteger | 页索引 |
| block | void(^)(ByteWhiteBoardPageInfo * ) | 接收页面信息的回调,详见 ByteWhiteBoardPageInfo。 |
- (void)getPagesCount:(void (^)(NSInteger))block;
获取白板总页数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSInteger) | 接收页数的回调 |
- (void)exportSnapshot:(NSInteger)pageIndex withElements:(BOOL)isElements withBackGround:(BOOL)isBackGround;
将当前白板中指定页面保存为一张本地图片。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pageIndex | NSInteger | 保存页面索引 |
| isElements | BOOL | 是否导出笔迹 |
| isBackGround | BOOL | 是否携带背景 |
注意
- (void)setViewMode:(ByteWhiteBoardViewMode) viewMode;
设置白板视角同步方式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| viewMode | ByteWhiteBoardViewMode | 视角同步模式,详见 ByteWhiteBoardViewMode |
- (void)getViewMode:(void (^)(ByteWhiteBoardViewMode))block;
获取视图模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(ByteWhiteBoardViewMode) | 接收视图同步模式回调。详见 ByteWhiteBoardViewMode。 |
- (void)setMaxZoom:(CGFloat)maxScale;
设置白板视图最大放大系数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| maxScale | CGFloat | 白板视图最大放大系数,范围 [1, 20]。默认为 20。 |
注意
- (int)zoomIn:(double)scale;
按照当前中心点和缩放系数放大白板视图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| scale | double | 缩放系数,范围 [0, 20]。1 表示放大 100%,0.25 表示放大 25% |
返回值
调用结果 0: 成功
注意
- (int)zoomOut:(double)scale;
按照当前中心点和缩放系数缩小白板视图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| scale | double | 缩放系数,范围 [0, 20]。1 表示缩小 100%,0.25 表示缩小 25% |
返回值
调用结果 0: 成功
注意
- (int)zoomTo:(double)scale Y:(int)centerX X:(int)centerY;
按照指定中心点和缩放系数缩放白板视图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| scale | double | 缩放系数,范围 [1, 20]。1 表示设置到 100% 尺寸。放大系数上限默认为 20,以调用 setMaxZoom: 设置的为准。 |
| centerX | int | 缩放中心点 X 坐标,默认为 0 |
| centerY | int | 缩放中心点 Y 坐标,默认为 0 |
返回值
调用结果 0: 成功
注意
- (BOOL)resetZoom;
恢复默认缩放视图。还原到原始大小,视图中心点恢复为白板中心点。
返回值
调用结果
true: 成功false: 失败。- (void)getZoomFactor:(void (^)(double))block;
获取当前白板视图缩放系数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(double) | 接收视图缩放系数的回调 当前白板视图缩放系数。范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom: 设置的为准。 |
- (void)getPptInfo:(void (^)(ByteWhiteBoardPptInfo *))block;
获取当前 PPT 信息,非 PPT 白板返回空
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(ByteWhiteBoardPptInfo *) | 接收 PPT 信息的回调,详见 ByteWhiteBoardPptInfo |
注意
调用 createFileWhiteBoard:boardName:pptInfo: 可以创建一个 PPT 白板。
- (void)pptNextStep;
下一个 PPT 动画,如果是最后一个动画,翻到下一页
注意
- (void)pptPrevStep;
上一个 PPT 动画,如果是第一个动画,翻到上一页
注意
注意
抽象类
WHITE_BOARD_EXPORT @interface ByteWhiteBoardRoom : NSObject
白板房间接口类。 调用 joinRoom:userID:token:defalutBoard:completionHandler:delegate: 之后,自动返回一个可以操作的 WhiteBoardRoom 实例。你可以通过这个类来进行白板房间相关操作。
- (void)updateByteWhiteBoardRoomDelegate:(id<ByteWhiteBoardRoomDelegate>)delegate;
更新 ByteWhiteBoardRoomDelegate 回调手柄。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| delegate | id<ByteWhiteBoardRoomDelegate> | ByteWhiteBoardRoomDelegate 回调手柄 |
- (void)getRoomId:(void (^)(NSString *))block;
获得当前白板房间 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSString *) | 接收白板房间 ID 的回调 |
注意
当本端用户已经进入白板房间后,你可以调用本接口查询当前房间 ID。
- (void)getRoomStatus:(void (^)(ByteWhiteBoardRoomStatus))block;
获取房间状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(ByteWhiteBoardRoomStatus) | 接收白板房间状态的回调。详见 ByteWhiteBoardRoomStatus |
- (void)leaveRoom;
退房。
注意
- (void)destroyRoom;
关闭所有白板,重进房间后无法进行写画。
注意
- (void)createWhiteBoard:(NSInteger)boardID pageInfo:(NSArray<ByteWhiteBoardPageInfo *>*)pages backgroundInfo:(ByteWhiteBoardBackgroundInfo *)bkInfo boardName:(NSString *)boardName;
在房间内创建一个白板。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| boardID | NSInteger | 白板 ID,必填 |
| pages | NSArray<ByteWhiteBoardPageInfo *> * | 初始的多个白板页信息。详见 ByteWhiteBoardPageInfo。 |
| bkInfo | ByteWhiteBoardBackgroundInfo * | 白板背景设置。详见 ByteWhiteBoardBackgroundInfo。 |
| boardName | NSString * | 白板名称,可选,默认为 boarID。支持的字符为中文、英文、数字、下划线(_) 和 连线符(-) |
注意
成功调用后将触发 byteWhiteBoardRoom:onCreateWhiteBoard:boardId:whiteboard:pptInfo:
- (void)createFileWhiteBoard:(NSInteger)boardId boardName:(NSString *)name pptInfo:(ByteWhiteBoardPptInfo *)createBoardInfo;
在房间内创建一个 PPT 白板
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| boardId | NSInteger | 白板 ID |
| name | NSString * | 白板名称,可选,默认为 boarId。支持的字符为中文、英文、数字、下划线(_) 和 连线符(-) |
| createBoardInfo | ByteWhiteBoardPptInfo * | PPT信息。详见 ByteWhiteBoardPptInfo。其中, fileId 获取方式如下。在 Web 端调用 createTranscodeTask 或服务端调用 WbTranscodeCreate,传入 PPT 的 URL 地址,获取到 fileId。 |
注意
-(void)removeWhiteBoard:(NSInteger)boardID;
关闭指定白板。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| boardID | NSInteger | 白板 ID |
注意
成功调用后将触发 byteWhiteBoardRoom:onRemoveWhiteBoard:boardId:pptInfo:
-(void)switchWhiteBoard:(NSInteger)boardID;
指定当前白板。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| boardID | NSInteger | 白板 ID |
注意
调用后将触发 byteWhiteBoardRoom:onCurrentWhiteBoardChanged:activeBoard:whiteboard:
- (void)getCurrentWhiteBoardId:(void (^)(NSInteger))block;
获取当前的白板 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSInteger) | 接收白板 ID 的回调 |
- (void)getWhiteBoardInfo:(NSInteger)boardID completionHandler:(void (^)(ByteWhiteBoardInfo *))block;
通过白板 ID 获取白板信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| boardID | NSInteger | 白板 ID |
| block | void(^)(ByteWhiteBoardInfo *) | 接收白板信息的回调 |
- (void)getCurrentWhiteBoard:(void (^)(ByteWhiteBoard *))block;
获取当前白板对象。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(ByteWhiteBoard *) | 接收当前白板对象的回调 |
-(void)getAllWhiteBoardInfo:(void (^)(NSArray *))block;
获取所有白板信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| block | void(^)(NSArray *) | 接收所有白板信息的回调 |
- (void)startPlayback;
开始播放白板录像。
成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。
注意
- (void)pausePlayback;
暂停播放白板录像。
成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。
- (void)stopPlayback;
停止播放白板录像。
成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。
- (void)setPlaybackProgress:(NSInteger)progress block:(void (^)(void))block;
设置白板回放进度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| progress | NSInteger | 白板录像播放进度,单位 s |
| block | void(^)(void) | 设置进度结果回调 |
注意
调用后将触发 onPlaybackProgressUpdate
WHITE_BOARD_EXPORT @interface ByteWhiteBoardRoomManager : NSObject
白板房间管理接口类,你可以通过这个类来操作白板 SDK 接口。
| 返回 | 名称 |
|---|---|
| instancetype | sharedEngineWithAppId:bindToWindow:completionHandler: |
| void | destroy |
| void | setDeviceID: |
| void | setLogLocation: |
| 返回 | 名称 |
|---|---|
| void | joinRoom:userID:token:defalutBoard:completionHandler:delegate: |
| NSString * | getSdkVersion |
| UIView * | getView |
+ (instancetype)sharedEngineWithAppId:(NSString *)appId bindToWindow:(UIView *)view completionHandler:(void (^)(void))block;
创建和初始化白板 ByteWhiteBoardRoomManager 实例。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| appId | NSString * | 每个应用的唯一标识符,由 RTC 控制台随机生成的。 不同的 AppId 生成的实例在互动白板中是天然隔离的,无法互通。 获取 appId 详见开通服务。 |
| view | UIView * | 将白板 UI 绑定到指定视图 |
| block | void(^)(void) | 初始化成功回调 |
返回值
ByteWhiteBoardRoomManager 实例
+ (void)destroy;
销毁 ByteWhiteBoardRoomManager 实例,释放资源。
+ (void)setDeviceID:(NSString *)deviceID;
设置设备 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | NSString * | 设备 ID |
+ (void)setLogLocation:(NSString *)path;
设置本地日志缓存路径。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | NSString * | 本地日志缓存路径。默认为 APP目录 Library/Caches |
- (void)joinRoom:(NSString *)roomID userID:(NSString *)userID token:(NSString *)token defalutBoard:(ByteWhiteBoardInfo *)boardInfo completionHandler:(void (^)(ByteWhiteBoardRoom *))block delegate:(id)delegate;
加入白板房间。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | NSString * | 房间 ID,是房间的唯一标志,详见 赋值规范。不能与 RTC 或 RTS 的房间 roomID 相同,否则会引起互踢,建议加前缀 |
| userID | NSString * | 用户 ID,详见 赋值规范。不能与 RTC 或 RTS 的 userID 相同,否则会引起互踢,建议加前缀 |
| token | NSString * | 动态密钥 用户登录必须携带的 Token,用于鉴权验证。 登录 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token。正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 获取 token 详见开通服务。 |
| boardInfo | ByteWhiteBoardInfo * | 默认白板参数。详见 ByteWhiteBoardInfo |
| block | void(^)(ByteWhiteBoardRoom *) | 进入房间成功回调 |
| delegate | id | 白板房间事件代理 |
注意
如果当前房间没有白板,将按照传入的参数创建一个白板,成功后将触发 byteWhiteBoardRoom:onCreateWhiteBoard:boardId:whiteboard:pptInfo: 回调。
- (NSString *)getSdkVersion;
获取白板 SDK 版本号。
返回值
SDK 版本号
- (UIView *)getView;
获取当前白板视图。
返回值
白板视图