2026/10/27 17:43:29
白板工具与房间状态
在成功加入房间后,通过 Controller 使用工具和状态接口。
TypeScript
import { Appliance, MemberState } from '@shengwang/whiteboard';
controller.setAppliance(Appliance.PENCIL);
controller.setStrokeWidth(4);
controller.setStrokeColor('#ff0000');
| 能力 | 公开接口 |
|---|---|
| 工具和文本样式 | setAppliance、setStrokeColor、setStrokeWidth、setTextSize、setTextColor、setMemberState |
| 读写权限 | setWritable(boolean): Promise<boolean>、getWritable(): boolean |
| 选择和历史操作 | copy、paste、duplicate、deleteOperation、undo、redo;需要可写并开启序列化 |
| 状态查询 | getRoomState、getRoomPhase、getRoomMembers、getMemberState、getGlobalState、getBroadcastState |
| 场景 | getSceneState、getEntireScenes、setScenePath、setSceneIndex、putScenes、moveScene、removeScenes、cleanScene |
| 图片 / 文本 | insertImage(ImageInformation)、insertText(x,y,text): Promise<string>、updateText(identifier,text) |
| 主白板页 | addPage、removePage、prevPage、nextPage;场景 index 从 0 开始 |
| 输入与视角 | disableDeviceInputs、disableCameraTransform、disableWindowOperation、refreshViewSize |
getWritable 返回 Controller 已知的本地读写状态,其他状态查询为 Promise。回调 onRoomStateChanged 通常为变化字段补丁,按需合并或重新查询。
房间阶段枚举从包入口导出:RoomPhase.CONNECTING/CONNECTED/RECONNECTING/DISCONNECTING/DISCONNECTED。房间断开错误通过 onDisconnectWithError,被踢原因通过 onKickedWithReason 处理。
ViewMode 出现在 setViewMode 的签名中,但本版包入口未单独导出,无法从包名导入该枚举对象。完整参数、模型字段、方法和回调见客户端 API。