ByteWhiteBoard
@interface ByteWhiteBoard : NSObject
objectivec

白板接口类。调用 getCurrentWhiteBoard: 将返回当前的白板实例,你可以通过这个类来操作当前白板。

成员函数
返回名称
intupdateByteWhiteBoardDelegate:
voidgetWhiteBoardId:
voidgetWhiteBoardRoomId:
voidgetCurrentPageId:
intsetWritable:
voidsetEditType:
voidsetPenSize:
intsetPenColor:
intsetShapeSize:
intsetShapeColor:
intsetTextFontSize:
intsetTextColor:
voidsetSelectionBoxStyle:
voidenableCursorSync:
voidsetCursorStyle:
voidaddImage:rect:completionHandler:
voidundo
voidredo
intclearPage
intcreatePages:index:isAutoFlip:
intremovePages:flip:
intflipPage:
voidflipNextPage
voidflipPrevPage
intsetPageBackground:
intsetBoardBackground:
voidgetCurrentPageInfo:
voidgetCurrentPageIndex:
voidgetAllPageInfo:
voidgetPageInfoByIndex:completionHandler:
voidgetPagesCount:
voidexportSnapshot:withBackGround:
voidsetViewMode:
voidgetViewMode:
voidsetMaxZoom:
intzoomIn:
intzoomOut:
intzoomTo:Y:X:
BOOLresetZoom
voidgetZoomFactor:
函数说明

updateByteWhiteBoardDelegate:
- (int)updateByteWhiteBoardDelegate:(id<ByteWhiteBoardDelegate>)delegate;
objectivec

设置事件回调。

传入参数

参数名类型说明
delegateid事件回调

返回值
调用结果
0: 成功

getWhiteBoardId:
- (void)getWhiteBoardId:(void (^)(NSInteger))block;
objectivec

获取当前的白板 ID。

传入参数

参数名类型说明
blockvoid (^接收白板 ID 的回调

getWhiteBoardRoomId:
- (void)getWhiteBoardRoomId:(void (^)(NSString * _Nonnull))block;
objectivec

获取当前白板所在的房间 ID。

传入参数

参数名类型说明
blockvoid (^接收白板房间 ID 的回调

getCurrentPageId:
- (void)getCurrentPageId:(void (^)(NSString *))block;
objectivec

获取当前页面的 PageId。

传入参数

参数名类型说明
blockvoid (^接收白板页面 ID 的回调

setWritable:
- (int)setWritable:(BOOL)writable;
objectivec

设置当前白板是否可以编辑。

传入参数

参数名类型说明
writableBOOL当前白板是否可编辑

返回值
调用结果
0: 成功

setEditType:
- (void)setEditType:(ByteWhiteBoardShapeType)shapeType;
objectivec

设置编辑动作类型。

传入参数

参数名类型说明
shapeTypeByteWhiteBoardShapeType编辑动作类型,详见 ByteWhiteBoardShapeType。

注意
如果默认的光标图形无法满足你的需求,调用 setCursorStylesetCursorStyle:,为不同工具过指定光标图形和样式。

setPenSize:
- (void)setPenSize:(NSInteger)size;
objectivec

设置画笔笔迹宽度。

传入参数

参数名类型说明
sizeNSInteger笔迹宽度,单位为画布宽度的万分之一

setPenColor:
- (int)setPenColor:(UIColor *)color;
objectivec

设置画笔颜色。

传入参数

参数名类型说明
colorUIColor*格式为 ARGB_8888

setShapeSize:
- (int)setShapeSize:(NSInteger)width;
objectivec

设置形状线条宽度。

传入参数

参数名类型说明
widthNSInteger形状线条宽度,单位为画布宽度的万分之一

setShapeColor:
- (int)setShapeColor:(UIColor*)color;
objectivec

设置图形边框颜色。

传入参数

参数名类型说明
colorUIColor*颜色,格式为 ARGB_8888

setTextFontSize:
- (int)setTextFontSize:(NSInteger)size;
objectivec

设置文本字号大小。

传入参数

参数名类型说明
sizeNSInteger文字的高度,单位为画布高的万分之一

setTextColor:
- (int)setTextColor:(UIColor*)color;
objectivec

设置文本颜色。

传入参数

参数名类型说明
colorUIColor*颜色,格式为 ARGB_8888

setSelectionBoxStyle:
- (void)setSelectionBoxStyle:(ByteWhiteBoardAnchor *)anchor;
objectivec

设置选择框样式。如果默认的选择框样式无法满足你的需求,调用本接口,并传入需要修改的属性。默认样式详见 ByteWhiteBoardAnchor。

传入参数

参数名类型说明
anchorByteWhiteBoardAnchor*选择框样式。详见 ByteWhiteBoardAnchor。

enableCursorSync:
- (void)enableCursorSync:(BOOL)enable;
objectivec

开启光标同步功能。开启后,房间中其他用户可以看到当前用户光标的实时移动轨迹。默认关闭。

传入参数

参数名类型说明
enableBOOL是否开启
• true: 开启
• false: 关闭

setCursorStyle:
- (void)setCursorStyle:(NSDictionary<NSString*, ByteWhiteBoardCursorInfo*> *)styleConfig;
objectivec

自定义不同的工具光标样式。如果默认的光标图形无法满足你的需求,调用本接口,为不同工具过指定光标图形和样式。

传入参数

参数名类型说明
styleConfigNSDictionary<NSString, ByteWhiteBoardCursorInfo>***自定义光标样式,字典类型的 key 为 ByteWhiteBoardCursorType 枚举类对应的字符串,value 为 ByteWhiteBoardCursorInfo 类型。

addImage:rect:completionHandler:
- (void)addImage:(NSString *)url rect:(ByteWhiteBoardImageRect *)imageRect completionHandler:(void (^)(ByteWhiteBoardAddImage))block;
objectivec

在当前页面中添加图片。

传入参数

参数名类型说明
urlNSString*图片的 url
imageRectByteWhiteBoardImageRect*图片的位置信息ByteWhiteBoardImageRect,如果传递空值则默认居中处理

undo
- (void)undo;
objectivec

撤销本端对白板的编辑操作。

当 byteWhiteBoard:onCanUndoStateChanged: 返回的状态为 false 时,调用本接口无效。

redo
- (void)redo;
objectivec

重做本端对白板的编辑操作。

当 byteWhiteBoard:onCanRedoStateChanged: 返回的状态为 false 时,调用本接口无效。

clearPage
- (int)clearPage;
objectivec

清除页面。

删除当前白板页面上所有的笔迹元素和已插入的图片。

返回值
调用结果
0: 成功

createPages:index:isAutoFlip:
- (int)createPages:(NSArray<ByteWhiteBoardPageInfo*> *)infos index:(NSInteger)insertPageIndex isAutoFlip:(BOOL)autoFlip;
objectivec

新建多个白板页。

传入参数

参数名类型说明
infosNSArray<ByteWhiteBoardPageInfo>**白板页的配置,新增白板页个数和infos配置的个数相同
insertPageIndexNSInteger创建的页面将插入到指定的第几个页面之后,默认插入到当前页后面
autoFlipBOOL是否自动翻页

返回值
调用结果
0: 成功

removePages:flip:
- (int)removePages:(NSArray<NSString*>*)pageIdList flip:(NSInteger)flipPageIndex;
objectivec

按照指定的索引号,删除白板页。

传入参数

参数名类型说明
pageIdListNSArray<NSString>**需要删除的页面 ID 列表
flipPageIndexNSInteger删除后跳转的页面 ID。传空值表示自动翻页:
• 当前页未被删除时,不翻页。
• 删除包含当前页在内的不连续多页时:翻到第一个被删除的页面的下一页。
• 删除当前页或包含当前页在内的连续多页时:翻到下一页,如果删除的页面为最末页,则翻到前一页。

返回值
调用结果
0: 成功

注意
成功调用后将触发 byteWhiteBoard:onRemovePages:boardId:pages: 回调。

flipPage:
- (int)flipPage:(NSInteger)pageIndex;
objectivec

白板翻页。

传入参数

参数名类型说明
pageIndexNSInteger目标页 Index

返回值
调用结果
0: 成功。调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:

flipNextPage
- (void)flipNextPage;
objectivec

白板翻到下一页。
调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:

flipPrevPage
- (void)flipPrevPage;
objectivec

白板翻到上一页。

调用成功后在房间内所有客户端触发 byteWhiteBoard:onPageIndexChanged:

setPageBackground:
- (int)setPageBackground:(ByteWhiteBoardBackgroundInfo*)info;
objectivec

修改当前白板页面的背景设置,例如背景图片颜色等。

传入参数

参数名类型说明
infoByteWhiteBoardBackgroundInfo*当前白板页面的背景设置

返回值
调用结果
0: 成功

注意

setBoardBackground:
- (int)setBoardBackground:(ByteWhiteBoardBackgroundInfo*)info;
objectivec

修改当前白板的背景设置,例如背景图片颜色等。

传入参数

参数名类型说明
infoByteWhiteBoardBackgroundInfo*背景设置。详见 ByteWhiteBoardBackgroundInfo

返回值
调用结果
0: 成功

注意

getCurrentPageInfo:
- (void)getCurrentPageInfo:(void (^)(ByteWhiteBoardPageInfo * _Nonnull))block;
objectivec

获取当前页面信息。详见 ByteWhiteBoardPageInfo

getCurrentPageIndex:
- (void)getCurrentPageIndex:(void (^)(NSInteger))block;
objectivec

获取当前页面索引。

传入参数

参数名类型说明
blockvoid (^接收当前白板页索引的回调

getAllPageInfo:
- (void)getAllPageInfo:(void (^)(NSArray<ByteWhiteBoardPageInfo *>* _Nonnull))block;
objectivec

获取所有页面信息。

传入参数

参数名类型说明
blockvoid (^接收所有白板页信息的回调,详见 ByteWhiteBoardPageInfo

getPageInfoByIndex:completionHandler:
- (void)getPageInfoByIndex:(NSInteger)index completionHandler:(void (^)(ByteWhiteBoardPageInfo * _Nonnull))block;
objectivec

通过索引号获取白板页信息。

传入参数

参数名类型说明
indexNSInteger页索引
blockvoid (^接收页面信息的回调,详见 ByteWhiteBoardPageInfo。

getPagesCount:
- (void)getPagesCount:(void (^)(NSInteger))block;
objectivec

获取白板总页数。

传入参数

参数名类型说明
blockvoid (^接收页数的回调

exportSnapshot:withBackGround:
- (void)exportSnapshot:(NSString *)pageId withBackGround:(BOOL)isBackGround;
objectivec

将当前白板中指定页面保存为一张本地图片。

传入参数

参数名类型说明
pageIdNSString*保存页面 ID,空则为当前页
isBackGroundBOOL是否携带背景

注意
调用成功后,将通过 onExportSnapshotbyteWhiteBoard:onExportSnapshot: 回调图片在本设备的绝对路径。

setViewMode:
- (void)setViewMode:(ByteWhiteBoardViewMode) viewMode;
objectivec

设置白板视角同步方式。

传入参数

参数名类型说明
viewModeByteWhiteBoardViewMode视角同步模式,详见 ByteWhiteBoardViewMode

getViewMode:
- (void)getViewMode:(void (^)(ByteWhiteBoardViewMode))block;
objectivec

获取视图模式。

传入参数

参数名类型说明
blockvoid (^接收视图同步模式回调

setMaxZoom:
- (void)setMaxZoom:(CGFloat)maxScale;
objectivec

设置白板视图最大放大系数。

传入参数

参数名类型说明
maxScaleCGFloat白板视图最大放大系数,范围 [1, 20]。默认为 20。

注意
设置成功后,将改变调用以下 API 的参数上限: zoomIn , zoomOut 或 zoomTo。

zoomIn:
- (int)zoomIn:(double)scale;
objectivec

按照当前中心点和缩放系数放大白板视图。

传入参数

参数名类型说明
scaledouble缩放系数,范围 [0, 20]。1 表示放大 100%,0.25 表示放大 25%

返回值
调用结果
0: 成功

注意

zoomOut:
- (int)zoomOut:(double)scale;
objectivec

按照当前中心点和缩放系数缩小白板视图。

传入参数

参数名类型说明
scaledouble缩放系数,范围 [0, 20]。1 表示缩小 100%,0.25 表示缩小 25%

返回值
调用结果
0: 成功

注意

zoomTo:Y:X:
- (int)zoomTo:(double)scale Y:(int)centerX X:(int)centerY;
objectivec

按照指定中心点和缩放系数缩放白板视图。

传入参数

参数名类型说明
scaledouble缩放系数,范围 [1, 20]。1 表示设置到 100% 尺寸。放大系数上限默认为 20,以调用 setMaxZoom:setMaxZoom 设置的为准。
centerXint缩放中心点 X 坐标,默认为 0
centerYint缩放中心点 Y 坐标,默认为 0

返回值
调用结果
0: 成功

注意

resetZoom
- (BOOL)resetZoom;
objectivec

恢复默认缩放视图。还原到原始大小,视图中心点恢复为白板中心点。

返回值
调用结果

getZoomFactor:
- (void)getZoomFactor:(void (^)(double))block;
objectivec

获取当前白板视图缩放系数。

传入参数

参数名类型说明
blockvoid (^接收视图缩放系数的回调
当前白板视图缩放系数。范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom:setMaxZoom 设置的为准。
ByteWhiteBoardRoom
@interface ByteWhiteBoardRoom : NSObject
objectivec

白板房间接口类。
调用 joinRoom:userID:token:defalutBoard:completionHandler:delegate: 之后,自动返回一个可以操作的 WhiteBoardRoom 实例。你可以通过这个类来进行白板房间相关操作。

成员函数
返回名称
voidupdateByteWhiteBoardRoomDelegate:
voidgetRoomId:
voidgetRoomStatus:
voidleaveRoom
voiddestroyRoom
voidcreateWhiteBoard:pageInfo:backgroundInfo:boardName:
voidremoveWhiteBoard:
voidswitchWhiteBoard:
voidgetCurrentWhiteBoardId:
voidgetWhiteBoardInfo:completionHandler:
voidgetCurrentWhiteBoard:
voidgetAllWhiteBoardInfo:
voidstartPlayback
voidpausePlayback
voidstopPlayback
voidsetPlaybackProgress:
函数说明

updateByteWhiteBoardRoomDelegate:
- (void)updateByteWhiteBoardRoomDelegate:(id<ByteWhiteBoardRoomDelegate>)delegate;
objectivec

更新 ByteWhiteBoardRoomDelegate 回调手柄。

传入参数

参数名类型说明
delegateidByteWhiteBoardRoomDelegate 回调手柄

getRoomId:
- (void)getRoomId:(void (^)(NSString *))block;
objectivec

获得当前白板房间 ID。

传入参数

参数名类型说明
blockvoid (^接收白板房间 ID 的回调

注意
当本端用户已经进入白板房间后,你可以调用本接口查询当前房间 ID。

getRoomStatus:
- (void)getRoomStatus:(void (^)(ByteWhiteBoardRoomStatus))block;
objectivec

获取房间状态。

传入参数

参数名类型说明
blockvoid (^接收白板房间状态的回调。详见 ByteWhiteBoardRoomStatus

leaveRoom
- (void)leaveRoom;
objectivec

退房。

注意

destroyRoom
- (void)destroyRoom;
objectivec

关闭所有白板,重进房间后无法进行写画。

注意

createWhiteBoard:pageInfo:backgroundInfo:boardName:
- (void)createWhiteBoard:(NSInteger)boardID pageInfo:(NSArray<ByteWhiteBoardPageInfo *>*)pages backgroundInfo:(ByteWhiteBoardBackgroundInfo *)bkInfo boardName:(NSString *)boardName;
objectivec

在房间内创建一个白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID,必填
pagesNSArray<ByteWhiteBoardPageInfo>**初始的多个白板页信息。详见 ByteWhiteBoardPageInfo
bkInfoByteWhiteBoardBackgroundInfo*白板背景设置。详见 ByteWhiteBoardBackgroundInfo
boardNameNSString*白板名称。支持的字符为中文、英文、数字、下划线(_) 和 连线符(-)

注意
成功调用后将触发 byteWhiteBoardRoom:onCreateWhiteBoard:boardId:whiteboard:

removeWhiteBoard:
-(void)removeWhiteBoard:(NSInteger)boardID;
objectivec

关闭指定白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID

注意
成功调用后将触发 byteWhiteBoardRoom:onRemoveWhiteBoard:boardId:

switchWhiteBoard:
-(void)switchWhiteBoard:(NSInteger)boardID;
objectivec

指定当前白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID

注意
调用后将触发 byteWhiteBoardRoom:onCurrentWhiteBoardChanged:activeBoard:whiteboard:

getCurrentWhiteBoardId:
- (void)getCurrentWhiteBoardId:(void (^)(NSInteger))block;
objectivec

获取当前的白板 ID。

传入参数

参数名类型说明
blockvoid (^接收白板 ID 的回调

getWhiteBoardInfo:completionHandler:
- (void)getWhiteBoardInfo:(NSInteger)boardID completionHandler:(void (^)(ByteWhiteBoardInfo *))block;
objectivec

通过白板 ID 获取白板信息。

传入参数

参数名类型说明
boardIDNSInteger白板 ID
blockvoid (^接收白板信息的回调

getCurrentWhiteBoard:
- (void)getCurrentWhiteBoard:(void (^)(ByteWhiteBoard *))block;
objectivec

获取当前白板对象。

传入参数

参数名类型说明
blockvoid (^接收当前白板对象的回调

getAllWhiteBoardInfo:
-(void)getAllWhiteBoardInfo:(void (^)(NSArray *))block;
objectivec

获取所有白板信息。

传入参数

参数名类型说明
blockvoid (^接收所有白板信息的回调

startPlayback
- (void)startPlayback;
objectivec

开始播放白板录像。

成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。

注意

pausePlayback
- (void)pausePlayback;
objectivec

暂停播放白板录像。

成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。

stopPlayback
- (void)stopPlayback;
objectivec

停止播放白板录像。

成功调用后,触发 byteWhiteBoardRoom:onPlaybackStateChanged:reason: 播放状态回调。

setPlaybackProgress:
- (void)setPlaybackProgress:(NSInteger)progress;
objectivec

设置白板回放进度。

传入参数

参数名类型说明
progressNSInteger白板录像播放进度,单位 s

注意
调用后将触发 onPlaybackProgressUpdate

ByteWhiteBoardRoomManager
@interface ByteWhiteBoardRoomManager : NSObject
objectivec

白板房间管理接口类,你可以通过这个类来操作白板 SDK 接口。

静态函数
返回名称
instancetypesharedEngineWithAppId:bindToWindow:completionHandler:
voiddestroy
voidsetDeviceID:
voidsetLogLocation:
成员函数
返回名称
voidjoinRoom:userID:token:defalutBoard:completionHandler:delegate:
NSString*getSdkVersion
UIView*getView
函数说明

sharedEngineWithAppId:bindToWindow:completionHandler:
+ (instancetype)sharedEngineWithAppId:(NSString *)appId bindToWindow:(UIView *)view completionHandler:(void (^)(void))block;
objectivec

创建和初始化白板 ByteWhiteBoardRoomManager 实例。

传入参数

参数名类型说明
appIdNSString*每个应用的唯一标识符,由 RTC 控制台随机生成的。
不同的 AppId 生成的实例在互动白板中是天然隔离的,无法互通。
获取 appId 详见开通服务。
viewUIView*将白板 UI 绑定到指定视图
blockvoid (^初始化成功回调

返回值
ByteWhiteBoardRoomManager 实例

destroy
+ (void)destroy;
objectivec

销毁 ByteWhiteBoardRoomManager 实例,释放资源。

setDeviceID:
+ (void)setDeviceID:(NSString*)deviceID;
objectivec

设置设备 ID。

传入参数

参数名类型说明
deviceIDNSString*设备 ID

setLogLocation:
+ (void)setLogLocation:(NSString*)path;
objectivec

设置本地日志缓存路径。

传入参数

参数名类型说明
pathNSString*本地日志缓存路径。默认为 APP目录 Library/Caches

joinRoom:userID:token:defalutBoard:completionHandler:delegate:
- (void)joinRoom:(NSString *)roomID userID:(NSString*)userID token:(NSString*)token defalutBoard:(ByteWhiteBoardInfo *)boardInfo completionHandler:(void (^)(ByteWhiteBoardRoom *))block delegate:(id)delegate;
objectivec

加入白板房间。

传入参数

参数名类型说明
roomIDNSString*房间 ID,是房间的唯一标志,详见 赋值规范
userIDNSString*用户 ID,详见 赋值规范
tokenNSString*动态密钥
用户登录必须携带的 Token,用于鉴权验证。
登录 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token。正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
获取 token 详见开通服务。
boardInfoByteWhiteBoardInfo*默认白板参数。详见 ByteWhiteBoardInfo
blockid进入房间成功回调
delegateid白板房间事件代理

注意
如果当前房间没有白板,将按照传入的参数创建一个白板,成功后将触发 byteWhiteBoardRoom:onWhiteBoardCreated:elapsed:byteWhiteBoardRoom:onCreateWhiteBoard:boardId:whiteboard: 回调。

getSdkVersion
- (NSString *)getSdkVersion;
objectivec

获取白板 SDK 版本号。

返回值
SDK 版本号

getView
- (UIView *)getView;
objectivec

获取当前白板视图。

返回值
白板视图