Fastboard Android SDK API 参考
- Android
更新时间不可用
本页提供 Fastboard Android 1.8.2 的 Java API 参考,固定依赖 Whiteboard Android 2.16.131。方法在入房完成后使用,生命周期取消与操作失败通过 FastResult.onError 返回。
FastboardView 类
getFastboard
public Fastboard getFastboard()获取 Fastboard 对象。
推荐将 FastboardView 添加到 app 布局后,通过 getFastboard() 获取视图所管理的 Fastboard 对象。1.8.2 也有公开的 Fastboard(FastboardView) 构造函数;使用视图入口可避免为同一视图重复创建管理对象。
注意
请确保在调用其他 API 前先调用该方法获取 Fastboard 对象。
返回
方法调用成功时返回 Fastboard 对象。
Fastboard 类
Fastboard 类提供创建 FastRoom 对象的方法。
createFastRoom
public FastRoom createFastRoom(FastRoomOptions roomOptions)创建 FastRoom 对象。
注意
该方法需要在获取 Fastboard 对象后调用。
参数
roomOptions:白板房间的配置选项。详见 FastRoomOptions。
返回
方法调用成功时返回 FastRoom 对象。
preloadWhiteboardView
public static void preloadWhiteboardView() {
WhiteboardViewManager.get().preload();
}预加载白板视图。
在首次创建 FastboardView 前,通过 FastboardConfig.Builder 设置 enablePreload=true。autoPreload=false 时需由应用调用本方法触发预加载;开启自动预加载时也可调用,缓存已满则不新增。成功调用该方法将消耗内存执行一次白板视图预加载,提升下次加入房间的速度。
setConfig
public static void setConfig(FastboardConfig config)修改 Fastboard 对象的辅助配置。
参数
config:Fastboard对象的辅助配置。详见 FastboardConfig。
FastRoomOptions
白板房间的配置选项。
public class FastRoomOptions {
private final String appId;
private final String uuid;
private final String token;
private final String uid;
private final boolean writable;
private final FastRegion fastRegion;
private Float containerSizeRatio;
private FastUserPayload userPayload;
public FastRoomOptions(String appId, String uuid, String token, String uid, FastRegion fastRegion) {
this(appId, uuid, token, uid, fastRegion, true);
}
public FastRoomOptions(String appId, String uuid, String token, String uid, FastRegion fastRegion, boolean writable) {
this.appId = appId;
this.uuid = uuid;
this.token = token;
this.uid = uid;
this.fastRegion = fastRegion;
this.writable = writable;
}
}FastRoomOptions 类包含以下属性:
appId:String。互动白板项目的 AppIdentifier。详见获取互动白板项目的安全密钥。uuid:String。房间的 UUID,即房间的唯一标识符。详见创建房间请求成功后响应包体中uuid参数的值。token:String。房间的 Room Token,用于加入房间时的用户鉴权。可以通过以下方式获取:- 调用生成 Room Token。
- 在 app 服务端用代码生成,详见在 app 服务端生成 Token。
uid:String。用户的 UID,即用户的唯一标识符,字符串格式,不能超过 1024 字节。请确保同一房间内每个用户的 uid 唯一。writable:boolean。用户是否以互动模式加入白板房间:true:以互动模式加入白板房间,即具有读写权限。false:以订阅模式加入白板房间,即具有只读权限。
fastRegion:数据中心。详见FastRegion。containerSizeRatio:Float。本地显示窗口中,内容的高宽比,默认为0.56,即9:16。userPayload:用户光标显示的用户信息,包括用户的昵称和头像。详见FastUserPayload。
FastRegion
数据中心,包含以下枚举值:
-
CN_HZ:中国杭州,服务区覆盖东亚、东南亚、以及其他数据中心未覆盖的地区。 -
US_SV:美国硅谷,服务区覆盖北美洲、南美洲。 -
SG:新加坡,服务区覆盖新加坡、东亚、东南亚。 -
IN_MUM:印度孟买,服务区覆盖印度。 -
EU:欧洲(法兰克福),服务区覆盖欧洲。
FastUserPayload
public class FastUserPayload {
private final String nickName;
private final String avatar;
public FastUserPayload(String nickName) {
this(nickName, null);
}
public FastUserPayload(String nickName, String avatar) {
this.nickName = nickName;
this.avatar = avatar;
}
}FastUserPayload 对象,用于储存光标上显示的用户信息,包含以下成员变量:
-
nickName:String。用户光标上显示的用户昵称。 -
avatar:String。(可选)用户光标上显示的用户头像,应传入头像对应的 URL 地址。
FastboardConfig
public class FastboardConfig {
private final boolean enablePreload;
private final int preloadCount;
private final boolean autoPreload;
}Fastboard 对象的辅助配置,包含以下属性:
enablePreload:boolean。是否开启白板预加载功能:true:开启白板预加载。false:(默认)关闭白板预加载。
preloadCount:int。预加载的 WebView 数量,默认为1;仅在 enablePreload=true 时生效,开启时必须为正整数。该属性的实际生效情况受内存容量的限制,你需要根据实际情况适当调整设置。autoPreload:boolean。该属性仅在enablePreload为true时生效。是否启用自动预加载:true:(默认)启用自动预加载。开启后可自动预加载白板视图,提升白板加载速度,但会占用额外的内存。false:关闭自动预加载。关闭后,你可以调用preloadWhiteboardView手动执行预加载。
createFastReplay
public FastReplay createFastReplay(FastReplayOptions replayOptions);使用回放配置创建 FastReplay。创建后调用 join,等待 ready 后控制播放;同一 FastboardView 不同时承载实时房间与回放。
FastRoom 类
FastRoom 类提供管理互动白板实时房间的方法。
join [1/2]
public void join()加入白板房间。
注意
该方法需要在成功创建 FastRoom 对象后调用。
join [2/2]
public void join(@Nullable OnRoomReadyCallback onRoomReadyCallback)加入白板房间。
注意
该方法需要在成功创建 FastRoom 对象后调用。
参数
onRoomReadyCallback:OnRoomReadyCallback 接口实例。传入null,表示不注册该接口。
OnRoomReadyCallback
OnRoomReadyCallback 接口,用于向 app 发送房间事件通知,包含如下成员方法:
void onRoomReady(FastRoom fastRoom);房间准备就绪回调。
参数
fastRoom:FastRoom对象。
destroy
public void destroy()销毁房间,释放资源。
isReady
public boolean isReady()获取房间是否准备就绪。
调用 join 方法后,需要调用该方法获取房间是否准备就绪。房间准备就绪后,才能调用 FastRoom 类中的其他方法对白板进行操作。
返回
房间是否准备就绪:
true:准备就绪。false:尚未准备就绪。
isWritable
public boolean isWritable()获取本地用户在当前互动白板实时房间是否为互动模式。
返回
获取本地用户是否为互动模式:
true:互动模式,即具有读写权限。false:订阅模式,即具有只读权限。
redo
public void redo()重做,即回退撤销操作。
setWritable [1/2]
public void setWritable(boolean writable)设置用户在房间是否为互动模式。
注意
该方法需要在房间准备就绪后调用。
参数
writable:用户在房间中是否为互动模式:true:互动模式,即具有读写权限。false:订阅模式,即具有只读权限。
setWritable [2/2]
public void setWritable(boolean writable, FastResult<Boolean> result)设置用户在房间是否为互动模式。
注意
该方法需要在房间准备就绪后调用。
参数
writable:用户在房间中是否为互动模式:true:互动模式,即具有读写权限。false:订阅模式,即具有只读权限。
result:setWritable方法调用的结果。详见 FastResult。传入FastResult实例,SDK 会触发在FastResult接口中实现的回调,报告setWritable方法调用是否成功;传入null表示不监听回调。
undo
public void undo()撤销上一步操作。
setStrokeColor
public void setStrokeColor(@ColorInt int color)设置线条的颜色。
参数
color:int。线条颜色,RGB 格式,例如0x0000FF表示蓝色。
setAppliance
public void setAppliance(FastAppliance fastAppliance)设置当前使用的白板工具。
参数
fastAppliance:白板工具。详见 FastAppliance。
FastAppliance
白板工具,包含以下枚举值:
-
CLICKER(Appliance.CLICKER):点击工具。目前主要用于点击 HTML5 文件上的内容。 -
SELECTOR(Appliance.SELECTOR):选择工具。 -
HAND(Appliance.HAND):抓手工具,用于移动视图。 -
PENCIL(Appliance.PENCIL):铅笔。 -
RECTANGLE(Appliance.RECTANGLE):矩形工具。 -
ELLIPSE(Appliance.ELLIPSE):椭圆工具。 -
TEXT(Appliance.TEXT):文字工具。 -
ERASER(Appliance.ERASER):橡皮工具。 -
PENCIL_ERASER(Appliance.PENCIL_ERASER):铅笔橡皮工具,用于擦除局部铅笔笔迹。 -
LASER_POINTER(Appliance.LASER_POINTER):激光笔。 -
ARROW(Appliance.ARROW):箭头。 -
STRAIGHT(Appliance.STRAIGHT):直线。 -
PENTAGRAM(Appliance.SHAPE, ShapeType.Pentagram):五角星。 -
RHOMBUS(Appliance.SHAPE, ShapeType.Rhombus):菱形。 -
TRIANGLE(Appliance.SHAPE, ShapeType.Triangle):三角形。 -
BUBBLE(Appliance.SHAPE, ShapeType.SpeechBalloon):对话气泡。 -
OTHER_CLEAR():清除白板内容。
setStrokeWidth
public void setStrokeWidth(int width)设置线条的宽度。
参数
width:int。线条宽度(px)。
cleanScene
public void cleanScene()清除白板内容。
setWritable
public void setWritable(boolean writable)设置用户在房间中是否为互动模式。
参数
writable:boolean。用户是否为互动模式:true:互动模式,即具有读写权限。false:订阅模式,即具有只读权限。
insertImage
public void insertImage(String url, int width, int height)插入图片。
该方法可以将指定的网络图片插入并展示到当前白板页面上。
参数
url:String。图片的 URL 地址。请确保 app 客户端能够访问该 URL,否则图片无法正常展示。width:int。图片的宽度(px)。height:int。图片的高度(px)。
insertVideo
public void insertVideo(String url, String title)在白板子窗口中插入并播放音视频。
参数
url:音视频文件的 URL 地址。请确保 app 客户端能够访问该 URL,否则无法正常加载音视频文件。title:窗口标题。
insertStaticDoc
public void insertStaticDoc(DocPage[] pages, String title, FastResult<String> result)在白板子窗口中插入静态文档。
参数
pages:插入文档的参数设置。详见 DocPage。title:String。子窗口标题。result:一个实现了FastResult接口的对象,用于处理方法调用的结果。SDK 会使用这个对象来报告操作的结果。如果你不需要监听回调,请传入null。
DocPage
public class DocPage {
private String src;
private String preview;
private Double width;
private Double height;
}插入文档的参数设置。DocPage 类包含以下属性:
src:String。图片或动态 PPT 页的地址。preview:String。(可选)图片或动态 PPT 预览图的 URL 地址。动态 PPT 预览图的 URL 地址可以从查询文档转换进度返回的preview字段获取。传入后,将在 App 左侧展示预览图。请确保 App 客户端能够访问该 URL,否则无法正常加载预览图。width:Double。插入的文档在白板中的宽度(px)。height:Double。插入的文档在白板中的高度(px)。
insertPptx
public void insertPptx(String taskUuid, String prefixUrl, String title, FastResult<String> result)在白板子窗口中插入动态文档。
该方法可以插入通过动态文档转换转换后的动态 HTML 网页。
参数
taskUUID:String。文档转换任务的 Task UUID,即发起文档转换任务请求成功时响应包体中uuid字段的值。prefixUrl:String。转换结果文件地址前缀路径,即查询文档转换进度请求成功时响应包体中prefix字段的值。title:String。子窗口标题。result:一个实现了FastResult接口的对象,用于处理方法调用的结果。SDK 会使用这个对象来报告操作的结果。如果你不需要监听回调,请传入null。
insertDocs
public void insertDocs(FastInsertDocParams params, @Nullable FastResult<String> result);支持转换结果和结构化参数重载;staticRenderer=presentation 创建 Presentation,未设置时静态页使用 DocsViewer。返回 App ID 或 undefined。
FastInsertDocParams
文档的参数设置。
public class FastInsertDocParams {
private String taskUUID;
private String taskToken;
private FastRegion region;
private ConverterType converterType;
private String fileType;
private Boolean dynamicDoc;
private String title;
}FastInsertDocParams 类包含以下属性:
taskUUID:String。文档转换任务的 Task UUID,即发起文档转换任务请求成功时响应包体中uuid字段的值。taskToken:String。文档转换任务的 Task Token,必须和发起文档转换任务时传入的 Task Token 一致。converterType: 枚举。文档转换服务的版本,取值如下:Projector: 新版。详见新版文档转换服务。WhiteboardConverter: 旧版(默认值),当前已不再维护。
fileType:String。文档类型:pdf:静态文档。pptx:动态文档。
dynamicDoc: boolean。文档转换任务类型是否为动态转换任务。title:String。窗口标题。
setFastStyle
public void setFastStyle(FastStyle style)设置白板用户界面的样式。
参数
style:白板用户界面的样式。详见 FastStyle。
FastStyle
白板用户界面的样式。
public class FastStyle {
private int mainColor;
private boolean darkMode;
public FastStyle() {
}
public int getMainColor() {
return mainColor;
}
public void setMainColor(@ColorInt int color) {
this.mainColor = color;
}
public boolean isDarkMode() {
return darkMode;
}
public void setDarkMode(boolean darkMode) {
this.darkMode = darkMode;
}
public FastStyle copy() {
FastStyle style = new FastStyle();
style.mainColor = mainColor;
style.darkMode = darkMode;
return style;
}
}FastStyle 类包含如下成员方法:
getMainColor
获取白板用户界面的主题色。
返回
白板用户界面的主题色。
setMainColor
设置白板用户界面的主题色。
该方法可设置部分按钮边框、白板加载时提示文字的颜色。
参数
color:白板用户界面的主题色,RGB 格式,例如0x0000FF表示蓝色。
isDarkMode
获取白板用户界面是否为暗色模式。
返回
true:白板用户界面为暗色模式。false:白板用户界面为浅色模式。
setDarkMode
设置白板用户界面为暗色模式。
参数
-
darkMode:是否使用暗色模式: -
true:暗色模式。 -
false:浅色模式。
setResource
public void setResource(FastResource fastResource)设置白板颜色相关的资源。
参数
fastResource:白板颜色相关的资源。详见 FastResource。
FastResource
白板颜色相关的资源。
public class FastResource {
@ColorInt
public int getBackgroundColor(boolean darkMode) {
return color(darkMode
? R.color.fast_dark_mode_bg
: R.color.fast_light_mode_bg
);
}
@ColorInt
public int getBoardBackgroundColor(boolean darkMode) {
return getBackgroundColor(darkMode);
}
}包含如下成员方法,均可通过重写方法来自定义颜色:
getBackgroundColor
获取白板控件底色。
参数
darkMode:boolean。白板控件底色是否为暗色模式:true:暗色模式。false:浅色模式。
返回
十六进制的颜色值。
getBoardBackgroundColor
获取白板底色。
注意
如果不重写该方法,将默认调用 getBackgroundColor。
参数
darkMode:boolean。白板底色是否为暗色模式:true:暗色模式。false:浅色模式。
返回
十六进制的颜色值。
registerApp
public void registerApp(FastRegisterAppParams params, FastResult<Boolean> result)向白板房间注册第三方窗口应用。
该方法允许你注册可以在白板内作为独立窗口运行的外部应用。
注册支持两种方式:
- 本地脚本注册:使用本地 JavaScript 代码(推荐方式,可靠性高)
- 远程包注册:使用远程 URL(可能因网络原因失败)
注意
- 注册必须在加入房间前完成,以确保应用能够正常加载。
- 确保所有客户端使用一致的应用版本,避免运行时问题。
- 在加入房间前注册应用。
- 注册的应用将可通过
getRoom().addApp()添加到房间中。
参数
params:注册参数,包含应用配置。详见 FastRegisterAppParams。result:registerApp方法调用的结果。详见 FastResult。传入FastResult实例,SDK 会触发在FastResult接口中实现的回调,报告registerApp方法调用是否成功;传入null表示不监听回调。
FastRegisterAppParams
用于注册第三方窗口 App 参数的配置类。
public class FastRegisterAppParams {
private String javascriptString;
private String kind;
private String url;
private Map<String, Object> appOptions;
private String variable;
public FastRegisterAppParams(String javascriptString, String kind, String variable, Map<String, Object> appOptions) {
this.javascriptString = javascriptString;
this.kind = kind;
this.appOptions = appOptions;
this.variable = variable;
}
public FastRegisterAppParams(String url, String kind, Map<String, Object> appOptions) {
this.url = url;
this.kind = kind;
this.appOptions = appOptions;
}
public String getJavascriptString() {
return javascriptString;
}
public String getKind() {
return kind;
}
public String getUrl() {
return url;
}
public Map<String, Object> getAppOptions() {
return appOptions;
}
public String getVariable() {
return variable;
}
}FastRegisterAppParams 类提供两种注册方式:
- 本地脚本注册:通过本地的 JavaScript 字符串注册(推荐方式,可靠性高)
- 使用
FastRegisterAppParams(String javascriptString, String kind, String variable, Map<String, Object> appOptions)构造函数
- 使用
- 远程包注册:通过发布包的 URL 进行注册(可能因网络原因失败)
- 使用
FastRegisterAppParams(String url, String kind, Map<String, Object> appOptions)构造函数
- 使用
FastRegisterAppParams 类包含以下属性:
javascriptString:String。本地 JS 脚本代码,用于本地脚本注册。kind:String。注册的 App 名称,即 App 的类型名称。url:String。远程注册包的 URL 地址,用于远程包注册。appOptions:Map<String, Object>。初始化 App 实例时会被传入的参数。这段配置不会被同步到其他端,属于本地设置。常常用来设置 debug 的开关。variable:String。挂载在 window 上的变量名,挂载后为window.variable。
focusApp
public void focusApp(String appId, FastResult<Boolean> result);可等待的布尔值表示共享 focus、本端 Box 焦点和 zIndex 已提交;不表示 App setup 或首帧完成。
insertPresentation
public void insertPresentation(DocPage[] pages, String title, @Nullable FastResult<String> result);
public void insertPresentation(DocPage[] pages, String title, @Nullable WindowOriginSize originSize, @Nullable FastResult<String> result);插入转换后的静态图片页,创建 Presentation;动态 ppt:// 和原始 PDF/PPT URL 需先转换。原有静态接口继续创建 DocsViewer。
dispatchDocsEvent
public void dispatchDocsEvent(WindowDocsEvent event, FastResult<DispatchDocsEventResult> result);统一控制 MainView、DocsViewer、Slide、Presentation。target 省略时跟随焦点,或指定 mainView/appId;page 从 1 开始,scale=1 为适配尺寸。accepted 表示命令接收,拒绝时检查 reason/message;不保证渲染完成。
getPageState
public void getPageState(@Nullable WindowPageStateOptions options, FastResult<UnifiedPageState> result);查询统一页面状态,返回 target、可选 appId、1-based page/pageCount、可选相对 scale。状态 target 为 mainView/DocsViewer/Slide/Presentation。
querySlidePageState
public void querySlidePageState(@Nullable String appId, FastResult<SlidePageState> result);查询当前焦点或指定 Slide App 的页码和总页数,页码从 1 开始。
setUnifiedPageStateListener
public void setUnifiedPageStateListener(@Nullable UnifiedPageStateListener listener);getRoom
public Room getRoom();获取 Fastboard 管理的底层 Native 对象,加入成功后使用;delegate/listener 按 Fastboard 的公开代理入口设置。
getWhiteSdk
public WhiteSdk getWhiteSdk();获取 Fastboard 管理的底层 Native 对象,加入成功后使用;delegate/listener 按 Fastboard 的公开代理入口设置。
disconnect
public void disconnect();
public void disconnect(@Nullable FastResult<Object> result);requiresRecreation
public boolean requiresRecreation();在主线程查询当前实例是否必须重建。SDK 初始化失败、无法确认退出完成或实例已销毁时,创建新的 FastboardView/FastRoom,不能在该实例重试。
canRetryJoin
public boolean canRetryJoin();在主线程查询当前实例能否安全重试入房。仅空闲状态返回 true;调用前同时确认无需重建。
FastUiSettings 类
FastUiSettings 类提供设置白板用户界面的方法。
showRoomController
public void showRoomController(ControllerId... ids)展示白板用户界面上的控件。
参数
ids:控件的标识符。详见 ControllerId。
hideRoomController
public void hideRoomController(ControllerId... ids)隐藏白板用户界面上的控件。
参数
ids:控件的标识符。详见 ControllerId。
ControllerId
白板用户界面上的控件,包含如下枚举值:
RedoUndo:重做和撤销按钮。ToolBox:工具条。PageIndicator:页面指示器。
setToolsExpandAppliances
public static void setToolsExpandAppliances(List<List<FastAppliance>> toolsExpandAppliances)设置展开模式下工具条包含的工具集。
如果 Fastboard SDK 提供的默认工具条无法满足你的需求,你可以调用该方法自定义工具条包含的工具,并设置工具条为展开模式。你可以在该方法中传入二级工具列表,其中一级列表中的元素会在工具条上展开显示,二级列表中的元素会被折叠。
成功调用 setToolsExpandAppliances 方法后,如果你需要切换工具条为折叠模式,你可以调用 setToolboxExpand。
注意
该方法需要在加入白板房间前调用。
参数
toolsExpandAppliances:展开模式下工具条包含的工具。详见 FastAppliance。
示例
ArrayList<List<FastAppliance>> config = new ArrayList<>();
config.add(Arrays.asList(
FastAppliance.CLICKER,
FastAppliance.PENCIL,
FastAppliance.TEXT,
FastAppliance.SELECTOR,
FastAppliance.ERASER
));
config.add(Arrays.asList(FastAppliance.SELECTOR));
config.add(Arrays.asList(FastAppliance.PENCIL));
config.add(Arrays.asList(FastAppliance.TEXT));
config.add(Arrays.asList(FastAppliance.ERASER));
config.add(Arrays.asList(
FastAppliance.STRAIGHT,
FastAppliance.ARROW,
FastAppliance.RECTANGLE,
FastAppliance.ELLIPSE,
FastAppliance.PENTAGRAM,
FastAppliance.RHOMBUS,
FastAppliance.BUBBLE,
FastAppliance.TRIANGLE
));
config.add(Arrays.asList(FastAppliance.OTHER_CLEAR));
FastUiSettings.setToolsExpandAppliances(config);setToolsCollapseAppliances
public static void setToolsCollapseAppliances(List<FastAppliance> toolsCollapseAppliances)设置折叠模式下工具条包含的工具集。
如果 Fastboard SDK 提供的默认工具条无法满足你的需求,你可以调用该方法自定义工具条包含的工具,并设置工具条为折叠模式。你可以在该方法中传入一级工具列表,列表中的元素在工具条上默认折叠。
成功调用 setToolsCollapseAppliances 方法后,如果需要切换工具条为展开模式,你可以调用 setToolboxExpand。
注意
该方法需要在加入白板房间前调用。
参数
toolsCollapseAppliances:白板工具条包含的工具。详见 FastAppliance。
示例
ArrayList<FastAppliance> collapseAppliances = new ArrayList<>();
collapseAppliances.add(FastAppliance.PENCIL);
collapseAppliances.add(FastAppliance.ERASER);
collapseAppliances.add(FastAppliance.ARROW);
collapseAppliances.add(FastAppliance.SELECTOR);
collapseAppliances.add(FastAppliance.TEXT);
collapseAppliances.add(FastAppliance.OTHER_CLEAR);
FastUiSettings.setToolsCollapseAppliances(collapseAppliances);setToolsColors
public static void setToolsColors(List<Integer> toolsColors)设置白板工具使用的颜色。
该方法设置使用白板工具绘制出的图形、线条或文字的颜色。
注意
该方法需要在加入白板房间前调用。
参数
toolsColors:白板工具的颜色,RGB 格式,例如0x0000FF表示蓝色。
setToolboxEdgeMargin
public void setToolboxEdgeMargin(int margin)设置白板工具条与侧边的边距。
边距的定义由 setToolboxGravity 中设置的工具条位置决定:
- 工具条位于白板左边:边距指工具条左侧侧边与白板左侧侧边之间的距离。
- 工具条位于白板右边:边距指工具条右侧侧边与白板右侧侧边之间的距离。
参数
margin:int。工具条与白板侧边的距离,单位为 px。
setToolboxGravity
public void setToolboxGravity(int gravity)设置工具条在白板上的位置。
参数
-
gravity:工具栏在白板上的位置: -
Gravity.LEFT:左边。 -
Gravity.RIGHT:右边。
setToolboxExpand
public void setToolboxExpand(boolean expand)设置是否展开工具栏。
工具栏的默认展示状态与设备有关,在平板上默认展开,在手机上默认折叠。你可以调用该方法,修改工具栏的展示状态。
参数
expand:是否展开工具栏:true:展开。false:折叠。
setStrokeRange
public void setStrokeRange(int min, int max);通过 FastUiSettings 设置工具栏画笔粗细选择范围,min 不大于 max。
FastResult
方法调用结果。
public interface FastResult<T> {
void onSuccess(T value);
void onError(Exception exception);
}FastResult 接口报告方法的调用结果,包含以下回调方法:
onSuccess:方法调用成功回调。onError:发生错误回调。
原生 SDK 与插件配置
WhiteSdkConfiguration config = fastRoomOptions.getSdkConfiguration();
config.setUseMultiViews(true);
config.setEnableAppliancePlugin(true);
RoomParams params = fastRoomOptions.getRoomParams();初始化前配置底层 SDK 和 RoomParams。插件 extras、背景图加载和 Auto Shape 见教具插件文档。
FastReplay 类
// FastReplay replay = fastboard.createFastReplay(options);以下为已公开的回放 API。创建、join、播放控制、stop、destroy 均在主线程调用。stop 释放当前播放器;需要再次回放时调用 join。destroy 后不复用该实例。
join
public void join();
public void join(@Nullable OnReplayReadyCallback onReplayReadyCallback);创建回放播放器;ready 回调签名为 void onReplayReady(FastReplay fastReplay)。先检查 isReady(),失败通过 FastReplayListener.onFastError 接收。
isReady / getPlayer
public boolean isReady();
public Player getPlayer();查询是否已可用,获取底层 Player;未就绪或销毁后可能为 null。
监听
public void addListener(FastReplayListener listener);
public void removeListener(FastReplayListener listener);FastReplayListener 提供 onReplayReadyChanged(FastReplay fastReplay) 和 onFastError(FastException error)。保留同一监听对象用于移除。
播放控制
public void play();
public void pause();
public void stop();
public void seekTo(long time);
public void setPlaybackSpeed(double playbackSpeed);
public void destroy();seekTo 的 time 为回放进度毫秒;playbackSpeed 为倍速。stop 会取消待创建回放并释放 Player;destroy 同时清理监听和宿主资源。
FastReplayOptions
public FastReplayOptions(String appId, String uuid, String token);
public void setFastRegion(FastRegion fastRegion);
public void setPlayerConfiguration(PlayerConfiguration playerConfiguration);
public void setSdkConfiguration(WhiteSdkConfiguration sdkConfiguration);
public void setContainerSizeRatio(Float ratio);
public void setDuration(Long duration);
public void setBeginTimestamp(Long beginTimestamp);
public String getAppId();
public String getUuid();
public String getToken();
public FastRegion getFastRegion();
public PlayerConfiguration getPlayerConfiguration();
public WhiteSdkConfiguration getSdkConfiguration();
public Float getContainerSizeRatio();
public Long getDuration();
public Long getBeginTimestamp();appId 为白板项目标识,uuid 为房间 UUID,token 为该房间访问凭证。region 默认 CN_HZ;beginTimestamp 为回放开始时间戳,duration 为时长,单位均为毫秒。各字段均有对应 get 方法;getPlayerConfiguration/getSdkConfiguration 在未设置时根据基础选项生成配置,显式提供配置时应完整设置所需字段。创建 FastReplay 前配置。
FastReplayOptions options = new FastReplayOptions(appId, roomUuid, roomToken);
options.setFastRegion(FastRegion.CN_HZ);
FastReplay replay = fastboard.createFastReplay(options);
replay.addListener(new FastReplayListener() {
@Override public void onFastError(FastException error) {
// 处理回放创建错误。
}
});
replay.join(ready -> {
if (ready.isReady()) ready.play();
});
// 在宿主销毁时于主线程调用 replay.destroy()。