ByteWhiteBoard
@interface ByteWhiteBoard : NSObject
objectivec

ByteWhiteBoard 类包含应用程序调用的主要方法。

成员函数
返回名称
intupdateByteWhiteBoardDelegate:
NSIntegergetWhiteBoardID
NSString*getCurrentPageID
NSString*getWhiteBoardRoomID
inthideDrawing:
intsetEditMode:
intsetEditType:
intsetPenSize:
intsetPenColor:
intsetShapeWidth:
intsetShapeColor:
intsetTextFontSize:
intsetTextColor:
intsetShapeStyle:
voidenableCursorSync:
voidsetCursorStyle:
intaddImage:X:Y:width:height:
intundo
intredo
intclearPage
intflipPage:
intcreatePage:config:isAutoFlip:
intcreateMultiPages:configs:isAutoFlip:
intchangePageBackgroundWhitPageID:bkInfo:
intchangeWholeBoardBackgroundWhitBkInfo:
ByteWhiteBoardPageInfo*getCurrentPageInfo
NSArray<ByteWhiteBoardPageInfo>**GetAllPageInfo
NSIntegergetCurrentPageIndex
NSIntegerGetAllPagesCount
NSIntegerGetPageIndexWhitPageId:
ByteWhiteBoardPageInfo*getPageInfoWhitIndex:
intremovePage:
intbindToWindow:
intbindToWindowWithConfig:
intunbindFromWindow
intSetMediaSyncTimestamp:
函数说明

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

设置事件回调

传入参数

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

返回值
调用结果
0: 成功

getWhiteBoardID
- (NSInteger)getWhiteBoardID;
objectivec

获取当前白板的ID

返回值
白板ID

getCurrentPageID
- (NSString*)getCurrentPageID;
objectivec

获取当前白板的PageID

返回值
PageID

getWhiteBoardRoomID
- (NSString*)getWhiteBoardRoomID;
objectivec

获取当前白板的房间号

返回值
房间号

hideDrawing:
- (int)hideDrawing:(BOOL)ishide;
objectivec

设置是否隐藏白板

传入参数

参数名类型说明
ishideBOOL当前白板是否隐藏

返回值
调用结果
0: 成功

setEditMode:
- (int)setEditMode:(ByteWhiteBoardEditMode)mode;
objectivec

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

传入参数

参数名类型说明
modeByteWhiteBoardEditMode当前白板的编辑模式,详见 ByteWhiteBoardEditMode

返回值
调用结果
0: 成功

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

设置编辑动作类型

传入参数

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

返回值
调用结果

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

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

设置画笔笔迹宽度

传入参数

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

返回值
调用结果
0: 成功

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

设置画笔颜色

传入参数

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

返回值
调用结果
0: 成功

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

设置形状线条宽度

传入参数

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

返回值
调用结果
0: 成功

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

设置图形边框颜色

传入参数

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

返回值
调用结果
0: 成功

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

设置文本字号大小

传入参数

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

返回值
调用结果
0: 成功

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

设置文本颜色

传入参数

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

返回值
调用结果
0: 成功

setShapeStyle:
- (int)setShapeStyle:(ByteWhiteBoardAnchor *)anchor;
objectivec

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

传入参数

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

返回值
调用结果
0: 成功

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

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

传入参数

参数名类型说明
enableBOOL是否开启

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

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

传入参数

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

返回值
调用结果

addImage:X:Y:width:height:
- (int)addImage:(NSString *)url X:(NSString *)positionX Y:(NSString *)positionY width:(NSString *)positionWidth height:(NSString *)positionHeight;
objectivec

在当前页面中添加图片

传入参数

参数名类型说明
urlNSString*图片的 url
positionXNSString*图片的x轴坐标,若填写nil,将由sdk自动居中插入
positionYNSString*图片的y轴坐标,若填写nil,将由sdk自动插入默认位置
width**NSString ***图片的宽,若填写nil,将由sdk自动计算大
height**NSString ***图片的高,若填写nil,将由sdk自动计算大小

返回值
调用结果
0: 成功

undo
- (int)undo;
objectivec

撤销

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

返回值
调用结果
0: 成功

redo
- (int)redo;
objectivec

重做

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

返回值
调用结果
0: 成功

clearPage
- (int)clearPage;
objectivec

清空白板

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

返回值
调用结果
0: 成功

flipPage:
- (int)flipPage:(NSString*)pageID;
objectivec

白板翻页

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

传入参数

参数名类型说明
pageIDNSString*目标页 ID

返回值
调用结果
0: 成功

createPage:config:isAutoFlip:
- (int)createPage:(NSString* _Nullable)prePageID config:(ByteWhiteBoardPageInfo*)info isAutoFlip:(BOOL)autoFlip;
objectivec

新建白板页

传入参数

参数名类型说明
prePageIDNSString*新增白板页的前向页,即新增的白板页将插在prePageID之后,如果prePageID==nil,则插到开头
infoByteWhiteBoardPageInfo*白板页的配置
autoFlipBOOL是否自动翻页

返回值
调用结果
0: 成功

createMultiPages:configs:isAutoFlip:
- (int)createMultiPages:(NSString *)prePageID configs:(NSArray<ByteWhiteBoardPageInfo*> *)infos isAutoFlip:(BOOL)autoFlip;
objectivec

新建多个白板页

传入参数

参数名类型说明
prePageIDNSString*新增白板页的前向页,即新增的白板页将插在prePageID之后,如果prePageID==nil,则插到开头
infosNSArray<ByteWhiteBoardPageInfo>**白板页的配置,新增白板页个数和infos配置的个数相同
autoFlipBOOL是否自动翻页

返回值
调用结果
0: 成功

changePageBackgroundWhitPageID:bkInfo:
- (int)changePageBackgroundWhitPageID:(NSString*)pageID bkInfo:(ByteWhiteBoardBackgroundInfo*)info;
objectivec

修改白板页背景

传入参数

参数名类型说明
infoByteWhiteBoardBackgroundInfo*修改参数

返回值
调用结果
0: 成功

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

修改整个board的所有页的背景

传入参数

参数名类型说明
infoByteWhiteBoardBackgroundInfo*修改参数

返回值
调用结果
0: 成功

getCurrentPageInfo
- (ByteWhiteBoardPageInfo*)getCurrentPageInfo;
objectivec

获取当前页面信息

返回值
白板页信息,详见 ByteWhiteBoardPageInfo

GetAllPageInfo
- (NSArray<ByteWhiteBoardPageInfo*>*)GetAllPageInfo;
objectivec

获取所有页面信息

返回值
白板页信息,详见 ByteWhiteBoardPageInfo

getCurrentPageIndex
- (NSInteger)getCurrentPageIndex;
objectivec

获取当前页面索引

返回值
索引

GetAllPagesCount
- (NSInteger)GetAllPagesCount;
objectivec

获取白板总页数

返回值
总数

GetPageIndexWhitPageId:
- (NSInteger)GetPageIndexWhitPageId:(NSString*)pageID;
objectivec

获取白板页所在索引号

返回值
索引

getPageInfoWhitIndex:
- (ByteWhiteBoardPageInfo*)getPageInfoWhitIndex:(NSInteger)index;
objectivec

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

返回值
白板信息

removePage:
- (int)removePage:(NSArray<NSString*>*)pageIDs;
objectivec

删除白板页

传入参数

参数名类型说明
pageIDsNSArray<NSString>**待删除的id

返回值
调用结果
0: 成功

bindToWindow:
- (int)bindToWindow:(UIView *)view;
objectivec

把画板UI绑定到某个view上

传入参数

参数名类型说明
viewUIView*视图

返回值
调用结果
0: 成功

bindToWindowWithConfig:
- (int)bindToWindowWithConfig:(ByteWhiteBoardWindowConfig*)config;
objectivec

把画板UI绑定到某个view上

传入参数

参数名类型说明
configByteWhiteBoardWindowConfig*详见 ByteWhiteBoardWindowConfig

返回值
调用结果
0: 成功

unbindFromWindow
- (int)unbindFromWindow;
objectivec

取消画板UI绑定

返回值
调用结果
0: 成功

SetMediaSyncTimestamp:
- (int)SetMediaSyncTimestamp:(int64_t)timestamp;
objectivec

设置同步时间戳

返回值
调用结果
0: 成功

ByteWhiteBoardRoom
@interface ByteWhiteBoardRoom : NSObject
objectivec

ByteWhiteBoardRoom 接口

成员函数
返回名称
voidupdateByteWhiteBoardRoomDelegate:
NSString*getRoomID
voidjoinRoom
voidleaveRoom
intdestroyWhiteBoard:
ByteWhiteBoard*getWhiteBoardByID:
voidcloseAllWhiteBoard
voidstartPlaybackWhiteBoard
voidpausePlaybackWhiteBoard
voidstopPlaybackWhiteBoard
intsetPlaybackWhiteBoardProgress:
函数说明

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

更新回调手柄

传入参数

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

getRoomID
- (NSString *)getRoomID;
objectivec

获得当前WhiteBoardRoom的房间ID

返回值
房间ID

joinRoom
- (void)joinRoom;
objectivec

进房

注意

leaveRoom
- (void)leaveRoom;
objectivec

退房

注意
调用后,本端触发 byteWhiteBoardRoom:onLeaveRoomResult:reason: 回调调用结果。

destroyWhiteBoard:
- (int)destroyWhiteBoard:(ByteWhiteBoard *)board;
objectivec

销毁白板 WhiteBoard

传入参数

参数名类型说明
boardByteWhiteBoard*待销毁白板。详见 ByteWhiteBoard

getWhiteBoardByID:
- (ByteWhiteBoard *)getWhiteBoardByID:(NSInteger)boardID;
objectivec

通过白板 ID 获取白板对象

传入参数

参数名类型说明
boardIDNSInteger白板 ID

返回值
白板对象。获取失败时,返回 nil。例如,传入的 boardID 有误。

closeAllWhiteBoard
- (void)closeAllWhiteBoard;
objectivec

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

注意

startPlaybackWhiteBoard
- (void)startPlaybackWhiteBoard;
objectivec

开始播放白板录像

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

注意

pausePlaybackWhiteBoard
- (void)pausePlaybackWhiteBoard;
objectivec

暂停播放白板录像

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

stopPlaybackWhiteBoard
- (void)stopPlaybackWhiteBoard;
objectivec

停止播放白板录像

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

setPlaybackWhiteBoardProgress:
- (int)setPlaybackWhiteBoardProgress:(NSInteger)progress;
objectivec

设置白板回放进度

传入参数

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

返回值
调用结果
0: 成功

ByteWhiteBoardRoomManager
@interface ByteWhiteBoardRoomManager : NSObject
objectivec

白板房间管理接口

静态函数
返回名称
instancetypesharedEngineWithAppId:delegate:
voiddestroy
voidsetDeviceID:
voidsetLogLocation:
voidsetCacheLocation:
voidsetAid:
成员函数
返回名称
voidupdateByteWhiteBoardRoomManagerDelegate:
ByteWhiteBoardRoom*createWhiteBoardRoom:userID:token:delegate:
voiddestroyWhiteBoardRoom:
ByteWhiteBoardRoom*getWhiteBoardRoom:
voidenableMediaTimeSync:
函数说明

sharedEngineWithAppId:delegate:
+ (instancetype)sharedEngineWithAppId:(NSString *)appId delegate:(id<ByteWhiteBoardRoomManagerDelegate>)delegate;
objectivec

创建白板 ByteWhiteBoardRoomManager 实例

传入参数

参数名类型说明
appIdNSString*每个应用的唯一标识符,由 RTC 控制台随机生成的。
不同的 AppId 生成的实例在互动白板中是天然隔离的,无法互通。
delegateidSDK 回调给应用层的 delegate,详见 ByteWhiteBoardRoomManagerDelegate

destroy
+ (void)destroy;
objectivec

销毁白板 ByteWhiteBoardRoomManager 单例对象

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

设置设备 ID

传入参数

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

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

设置本地日志缓存路径

传入参数

参数名类型说明
pathNSString*本地日志缓存路径

注意
不主动设置,默认为APP目录 Library/Caches

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

设置数据缓存路径

传入参数

参数名类型说明
pathNSString*数据缓存路径

注意
默认为 APP目录 Library/Caches

setAid:
+ (void)setAid:(NSString*)aid;
objectivec

设置 App ID

传入参数

参数名类型说明
aidNSString*

注意
用于标识APP

updateByteWhiteBoardRoomManagerDelegate:
- (void)updateByteWhiteBoardRoomManagerDelegate:(id<ByteWhiteBoardRoomManagerDelegate>)delegate;
objectivec

更新 ByteWhiteBoardRoomManager 的delegate

传入参数

参数名类型说明
delegateid

createWhiteBoardRoom:userID:token:delegate:
- (ByteWhiteBoardRoom *)createWhiteBoardRoom:(NSString *)roomID userID:(NSString*)userID token:(NSString*)token delegate:(id<ByteWhiteBoardRoomDelegate>)delegate;
objectivec

创建白板 WhiteBoardRoom

传入参数

参数名类型说明
userIDNSString*用户ID
roomIDNSString*房间ID
tokenNSString*鉴权密钥
delegateid白板房间事件回调

返回值
白板房间对象。参数校验失败时返回空的实例

注意
白板房间创建成功后自动创建白板,成功后将触发 byteWhiteBoardRoom:onWhiteBoardCreated:elapsed: 回调。

destroyWhiteBoardRoom:
- (void)destroyWhiteBoardRoom:(ByteWhiteBoardRoom *)boardRoom;
objectivec

销毁白板房间 WhiteBoardRoom

传入参数

参数名类型说明
boardRoomByteWhiteBoardRoom*待销毁白板。详见 ByteWhiteBoardRoom

getWhiteBoardRoom:
- (ByteWhiteBoardRoom *)getWhiteBoardRoom:(NSString *)roomID;
objectivec

通过房间 ID 获取白板房间对象

传入参数

参数名类型说明
roomIDNSString*白板ID

返回值
白板房间对象 (可能为nil)

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

开启/关闭时间戳回调

传入参数

参数名类型说明
enableBOOL是否开启时间戳回调

注意
在参与白板互动的用户中,选择一个端作为参考对象。在这个端调用本接口,成功开启后将触发 2 秒一次的 byteWhiteBoardRoomManager:onMediaSyncTimestamp: 时间戳回调。将时间戳传给房间中的其他客户端,实现时间同步。