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:
voidexportCurrentPageSnapshot
intremovePage:
intbindToWindow:
intbindToWindowWithConfig:
intunbindFromWindow
intsetMediaSyncTimestamp:
voidsetViewMode:
voidsetMaxZoom:
intzoomIn:
intzoomOut:
intzoomTo:Y:X:
BOOLresetZoom
doublegetZoomFactor
函数说明

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

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

返回值
白板信息

exportCurrentPageSnapshot
- (void)exportCurrentPageSnapshot;
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: 成功

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

设置白板视图跟随模式。

传入参数

参数名类型说明
viewModeByteWhiteBoardViewMode视角同步模式。默认为跟随模式。参见 ByteWhiteBoardViewMode。

注意

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

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

传入参数

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

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

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

按指定系数放大当前白板视图。

传入参数

参数名类型说明
scaledouble放大倍数。例如当前缩放系数为 1,放大倍数为 2,则成功调用本接口后的缩放系数为 1 • 2 = 3。

返回值
调用结果

注意

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

按指定倍数缩小当前白板视图。

传入参数

参数名类型说明
scaledouble缩小倍数。例如当前缩放系数为 3,缩小倍数为 2,则成功调用本接口后的缩放系数为 3 - 2 = 1。

返回值
调用结果

注意

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

白板缩放&视角同步

传入参数

参数名类型说明
scaledouble缩放系数,范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom: 设置的为准。
centerYint视角中心点y坐标,默认为0
centerXint视角中心点x坐标,默认为0
0: 成功

resetZoom
- (BOOL)resetZoom;
objectivec

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

返回值
调用结果

getZoomFactor
- (double)getZoomFactor;
objectivec

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

返回值
当前白板视图缩放系数。范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom: 设置的为准。

ByteWhiteBoardRoom
@interface ByteWhiteBoardRoom : NSObject
objectivec

ByteWhiteBoardRoom 接口

成员函数
返回名称
voidupdateByteWhiteBoardRoomDelegate:
NSString*getRoomID
voidjoinRoom
voidleaveRoom
voidcreateWhiteBoard:pageInfo:backgroundInfo:boardNmae:
voidcloseWhiteBoard:
intdestroyWhiteBoard:
ByteWhiteBoard*getWhiteBoardByID:
voidsetActiveWhiteBoard:
intgetActiveWhiteBoard
NSArray<ByteWhiteBoardInfo>**getAllWhiteBoardInfos
voidcloseRoom
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: 回调调用结果。

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

创建白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID,必填。当白板 ID 已存在时,创建失败,并通过 byteWhiteBoardRoom:onOccurError: 返回 CREATE_BOARD_FAILED。
pagesNSArray<ByteWhiteBoardPageInfo>**初始页面信息,默认为空。构建页面信息参见 ByteWhiteBoardPageInfo。
bkInfoByteWhiteBoardBackgroundInfo*背景图,默认为空。参见 ByteWhiteBoardBackgroundInfo。
boardNameNSString*白板名称,默认为空。

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

关闭白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID,必填

注意
调用成功后,房间内所有用户都将收到 byteWhiteBoardRoom:onCloseWhiteBoard:boardId: 回调。

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

销毁本地白板实例。

传入参数

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

注意

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

通过白板 ID 获取白板对象

传入参数

参数名类型说明
boardIDNSInteger白板 ID

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

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

根据白板 ID 将其指定为当前白板。

传入参数

参数名类型说明
boardIDNSInteger白板 ID。你可以调用 getAllWhiteBoardInfos 获取房间内所有的白板信息。

返回值

注意
如无特殊说明,对白板进行编辑操作的 API 都只作用在当前白板上。

getActiveWhiteBoard
-(int)getActiveWhiteBoard;
objectivec

获取当前白板 ID。

返回值
当前白板 ID。-1 表示获取失败。

注意
获取到当前白板 ID 后,可以调用 getWhiteBoardByID: 获取相应的白板对象。

getAllWhiteBoardInfos
-(NSArray<ByteWhiteBoardInfo *> *) getAllWhiteBoardInfos;
objectivec

获取房间内所有白板。

返回值
白板列表。详见 ByteWhiteBoardInfo。

closeRoom
- (void)closeRoom;
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:onCreateWhiteBoard: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: 时间戳回调。将时间戳传给房间中的其他客户端,实现时间同步。