Public 成员函数 | |
Boolean | getDisconnectedBySelf () |
Boolean | getWritable () |
Long | getObserverId () |
void | setGlobalState (GlobalState globalState) |
void | setMemberState (MemberState memberState) |
void | copy () |
void | paste () |
void | duplicate () |
void | deleteOperation () |
void | disableSerialization (boolean disable) |
void | redo () |
void | undo () |
void | setViewMode (ViewMode viewMode) |
void | disconnect () |
void | disconnect (@Nullable final Promise< Object > promise) |
void | insertImage (ImageInformation imageInfo) |
void | completeImageUpload (String uuid, String url) |
void | insertImage (ImageInformationWithUrl imageInformationWithUrl) |
void | insertText (int x, int y, String text) |
GlobalState | getGlobalState () |
void | getGlobalState (final Promise< GlobalState > promise) |
MemberState | getMemberState () |
void | getMemberState (final Promise< MemberState > promise) |
RoomMember[] | getRoomMembers () |
void | getRoomMembers (final Promise< RoomMember[]> promise) |
BroadcastState | getBroadcastState () |
void | getBroadcastState (final Promise< BroadcastState > promise) |
SceneState | getSceneState () |
void | getSceneState (final Promise< SceneState > promise) |
Scene[] | getScenes () |
void | getScenes (final Promise< Scene[]> promise) |
double | getZoomScale () |
void | getZoomScale (final Promise< Number > promise) |
RoomPhase | getRoomPhase () |
void | getRoomPhase (final Promise< RoomPhase > promise) |
RoomState | getRoomState () |
void | getRoomState (final Promise< RoomState > promise) |
void | setScenePath (String path) |
void | setScenePath (String path, final Promise< Boolean > promise) |
void | setSceneIndex (Integer index, @Nullable final Promise< Boolean > promise) |
void | putScenes (String dir, Scene[] scenes, int index) |
void | moveScene (String sourcePath, String targetDirOrPath) |
void | removeScenes (String dirOrPath) |
void | cleanScene (boolean retainPpt) |
void | pptNextStep () |
void | pptPreviousStep () |
void | removePage (@Nullable Promise< Boolean > promise) |
void | removePage (int index, @Nullable Promise< Boolean > promise) |
void | zoomChange (double scale) |
void | debugInfo (final Promise< JSONObject > promise) |
void | disableOperations (final boolean disableOperations) |
void | setWritable (final boolean writable, @Nullable final Promise< Boolean > promise) |
void | disableEraseImage (boolean disable) |
void | disableCameraTransform (final boolean disableCameraTransform) |
void | disableDeviceInputs (final boolean disableOperations) |
void | setTimeDelay (double delaySec) |
Double | getTimeDelay () |
void | syncBlockTimestamp (long utcMs) |
void | dispatchMagixEvent (AkkoEvent eventEntry) |
![]() | |
void | postIframeMessage (String string) |
void | postIframeMessage (WhiteObject object) |
void | getScenePathType (String path, final Promise< WhiteScenePathType > promise) |
void | getScene (String path, final Promise< Scene > promise) |
void | getEntireScenes (final Promise< Map< String, Scene[]> > promise) |
void | refreshViewSize () |
void | scaleIframeToFit () |
void | scalePptToFit () |
void | scalePptToFit (AnimationMode mode) |
void | addMagixEventListener (String eventName, EventListener eventListener) |
void | addHighFrequencyEventListener (String eventName, FrequencyEventListener eventListener, Integer fireInterval) |
void | removeMagixEventListener (String eventName) |
void | convertToPointInWorld (double x, double y, final Promise< Point > promise) |
void | setCameraBound (CameraBound bound) |
void | setBackgroundColor (@ColorInt int intColor) |
int | getBackgroundColor () |
void | getScenePreviewImage (String scenePath, final Promise< Bitmap > promise) |
void | getSceneSnapshotImage (String scenePath, final Promise< Bitmap > promise) |
void | disableCameraTransform (Boolean disable) |
void | moveCamera (CameraConfig camera) |
void | moveCameraToContainer (RectangleConfig rectangle) |
额外继承的成员函数 | |
![]() | |
void | post (Runnable runnable) |
![]() | |
final JsBridgeInterface | bridge |
String | uuid |
int | densityDpi |
![]() | |
static final Gson | gson = new Gson() |
Room
类,用于操作互动白板实时房间。
Boolean com.herewhite.sdk.Room.getDisconnectedBySelf | ( | ) |
获取用户是否主动断开与白板房间的连接。
该方法可以避免白板 SDK 反复重连,用户不断重新加入房间。
Boolean com.herewhite.sdk.Room.getWritable | ( | ) |
获取本地用户在当前互动白板实时房间是否为互动模式。
true
:本地用户在当前互动白板实时房间为互动模式,即可对白板进行读写操作。false
: 本地用户在当前互动白板实时房间为订阅模式,即对白板只能进行读取操作。 Long com.herewhite.sdk.Room.getObserverId | ( | ) |
获取用户在当前房间中的用户 ID。
void com.herewhite.sdk.Room.setGlobalState | ( | GlobalState | globalState | ) |
修改互动白板实时房间的公共全局状态。
实时房间的 globalState
属性为公共全局变量,房间内所有用户都可以读取 globalState
,互动模式用户可以修改 globalState
。 修改后的 globalState
会立即同步给所有用户。
globalState | 房间公共全局状态,详见 GlobalState . |
void com.herewhite.sdk.Room.setMemberState | ( | MemberState | memberState | ) |
修改房间内的白板工具状态。
调用该方法会立刻更新房间的 MemberState
。 你可以调用 getMemberState
获取最新设置的白板工具状态。
memberState | 需要修改的白板工具状态,详见 MemberState 。 |
void com.herewhite.sdk.Room.copy | ( | ) |
void com.herewhite.sdk.Room.paste | ( | ) |
粘贴复制的内容。
该方法会将 copy
方法复制的内容粘贴到白板中(用户当前的视角中间)。
disableSerialization
设为 false
时生效。void com.herewhite.sdk.Room.duplicate | ( | ) |
复制并粘贴选中的内容。
该方法会将选中的内容复制并粘贴到白板中(用户当前的视角中间)。
disableSerialization
设为 false
时生效。void com.herewhite.sdk.Room.deleteOperation | ( | ) |
删除选中的内容。
void com.herewhite.sdk.Room.disableSerialization | ( | boolean | disable | ) |
开启/禁止本地序列化。
设置 disableSerialization(true)
后,以下方法将不生效:
redo
undo
duplicate
copy
paste
disableSerialization(false)
,必须确保同一房间内所有用户使用的 SDK 满足以下版本要求,否则会导致 app 客户端崩溃。disable | 是否禁止本地序列化:
|
void com.herewhite.sdk.Room.redo | ( | ) |
void com.herewhite.sdk.Room.undo | ( | ) |
void com.herewhite.sdk.Room.setViewMode | ( | ViewMode | viewMode | ) |
切换视角模式。
互动白板实时房间支持对用户设置以下视角模式:
Broadcaster
: 主播模式。Follower
:跟随模式。Freedom
:(默认)自由模式。 该方法的设置会影响房间内所有用户的视角模式:
disableOperations
(true) 禁止跟随模式的用户操作白板,以保证其保持跟随模式。该方法是异步操作。调用该方法后,你可以使用 getBroadcastState
[2/2] 获取最新设置的视角模式。
viewMode | 视角模式,详见 ViewMode 。 |
void com.herewhite.sdk.Room.disconnect | ( | ) |
主动断开与互动白板实时房间实例的连接。
该方法会把与当前房间实例相关的所有资源释放掉。如果要再次加入房间,需要重新调用 joinRoom
。
disconnect
[2/2]。 void com.herewhite.sdk.Room.disconnect | ( | @Nullable final Promise< Object > | promise | ) |
主动断开与互动白板实时房间实例的连接。
该方法会把与当前房间实例相关的所有资源释放掉。如果要再次加入房间,需要重新调用 joinRoom
。
你可以在该方法中传入 Promise<Object>
接口实例,以获取方法调用结果。
promise | Promise<Object> 接口实例,详见 Promise 。你可以通过该接口获取 disconnect 的调用结果:
|
void com.herewhite.sdk.Room.insertImage | ( | ImageInformation | imageInfo | ) |
插入图片显示区域。
SDK 会根据你传入的 ImageInformation
在白板上设置并插入图片的显示区域。 调用该方法后,还需要调用 completeImageUpload
传入图片的 Url 地址,以在该显示区域插入并展示图片。
insertImage
方法同时传入图片信息和图片的 Url 地址,在白板中插入并展示图片。imageInfo | 图片信息,详见 ImageInformation 。 |
void com.herewhite.sdk.Room.completeImageUpload | ( | String | uuid, |
String | url | ||
) |
展示图片。
该方法可以将指定的网络图片展示到指定的图片显示区域。
insertImage
方法在白板上插入了图片的显示区域。uuid | 图片显示区域的 UUID, 即在 insertImage 方法的 ImageInformation 中传入的图片 UUID。 |
url | 图片的 URL 地址。必须确保 app 客户端能访问该 URL,否则无法正常展示图片。 |
void com.herewhite.sdk.Room.insertImage | ( | ImageInformationWithUrl | imageInformationWithUrl | ) |
插入并展示图片。
该方法封装了 insertImage
和 completeImageUpload
方法。 你可以在该方法中同时传入图片信息和图片的 URL,直接在白板中插入图片的显示区域并展示图片。
imageInformationWithUrl | 图片信息及图片的 URL 地址,详见 ImageInformationWithUrl 。 |
void com.herewhite.sdk.Room.insertText | ( | int | x, |
int | y, | ||
String | text | ||
) |
在指定位置插入文字。
x | 第一个文字左侧边的中点在世界坐标系中的 X 轴坐标。 |
y | 第一个文字左侧边的中点在世界坐标系中的 Y 轴坐标。 |
text | 初始的文字内容,不传则为空。 |
GlobalState com.herewhite.sdk.Room.getGlobalState | ( | ) |
获取房间的全局状态。
setCustomGlobalStateClass
方法设置的自定义 GlobalState
,在获取后,可以直接进行强转。setGlobalState
方法后,可以立刻调用该方法。GlobalState
。 void com.herewhite.sdk.Room.getGlobalState | ( | final Promise< GlobalState > | promise | ) |
获取房间全局状态。
getGlobalState
[1/2]。setCustomGlobalStateClass
方法设置的自定义 GlobalState
,在获取后,可以直接进行强转。promise | Promise<GlobalState> 接口实例,详见 Promise 。你可以通过该接口获取 getGlobalState 的调用结果:
|
MemberState com.herewhite.sdk.Room.getMemberState | ( | ) |
获取当前的白板工具状态。
setMemberState
方法后,可以立即调用 getMemberState
获取最新的白板工具状态。MemberState
。 void com.herewhite.sdk.Room.getMemberState | ( | final Promise< MemberState > | promise | ) |
获取当前的白板工具状态。
promise | Promise<MemberState> 接口实例,详见 Promise 。你可以通过该接口获取 getMemberState 的调用结果:
|
RoomMember[] com.herewhite.sdk.Room.getRoomMembers | ( | ) |
void com.herewhite.sdk.Room.getRoomMembers | ( | final Promise< RoomMember[]> | promise | ) |
获取房间的用户列表。
promise | Promise<RoomMember[]> 接口实例,详见 Promise 。你可以通过该接口获取 getRoomMembers 的调用结果:
|
BroadcastState com.herewhite.sdk.Room.getBroadcastState | ( | ) |
获取用户的视角状态。
setViewMode
修改用户视角模式后,无法立刻通过 getBroadcastState
[1/2] 获取最新的用户视角状态。 如果需要立即获取最新的用户视角状态,可以调用 getBroadcastState
[2/2]。BroadcastState
。 void com.herewhite.sdk.Room.getBroadcastState | ( | final Promise< BroadcastState > | promise | ) |
获取用户视角状态。
setViewMode
修改用户视角模式后,无法立刻通过 getBroadcastState
[1/2] 获取最新的用户视角状态。如果需要 立即获取最新的用户视角状态,可以调用 getBroadcastState
[2/2]。promise | Promise<BroadcastState> 接口实例,详见 Promise 。你可以通过该接口获取 getBroadcastState 的调用结果:
|
SceneState com.herewhite.sdk.Room.getSceneState | ( | ) |
获取房间当前场景目录下的场景状态。
getSceneState
[1/2] 立即获取最新的场景状态。此时,如果需要立即获取最新的场景状态, 可以调用 getSceneState
[2/2]。
SceneState
。 void com.herewhite.sdk.Room.getSceneState | ( | final Promise< SceneState > | promise | ) |
获取房间当前场景目录下的场景状态。
getSceneState
立即获取最新的场景状态。
promise | Promise<SceneState> 接口实例,详见 Promise 。你可以通过该接口获取 getSceneState 的调用结果:
|
Scene[] com.herewhite.sdk.Room.getScenes | ( | ) |
获取房间当前场景目录下的场景列表。
getScenes
[1/2] 立即获取最新的场景列表。 此时,如果需要立即获取最新的场景列表,可以调用 getScenes
[2/2]。setScenePath
[1/2]setScenePath
[2/2]putScenes
Scene
。 获取房间当前场景目录下的场景列表。
getScenes
,立即获取最新的场景列表。setScenePath
[1/2]setScenePath
[2/2]putScenes
double com.herewhite.sdk.Room.getZoomScale | ( | ) |
获取用户当前的视角缩放比例。
zoomChange
或 moveCamera
调整视角缩放比例后,无法通过 getZoomScale
[1/2] 立即获取最新的缩放比例。 此时,如果需要立即获取最新的缩放比例,可以调用 getZoomScale
[2/2]。void com.herewhite.sdk.Room.getZoomScale | ( | final Promise< Number > | promise | ) |
获取当前用户的视角缩放比例。
zoomChange
或 moveCamera
调整视角缩放比例后,如果需要立即获取最新的缩放比例,可以调用 getZoomScale
[2/2]。promise | Promise<Number> 接口实例,详见 Promise 。你可以通过该接口获取 getZoomScale 的调用结果:
|
RoomPhase com.herewhite.sdk.Room.getRoomPhase | ( | ) |
获取房间的连接状态。
disconnect
[1/2] 或 disconnect
[2/2] 断开 SDK 与实时房间的连接后,无法立即通过 getRoomPhase
[1/2] 获取最新的房间连接状态。 此时,你可以调用 getRoomPhase
[2/2] 立即获取最新的房间连接状态。RoomPhase
。 获取房间的连接状态。
disconnect
[1/2] 或 disconnect
[2/2] 断开 SDK 与实时房间的连接后,无法立即通过 getRoomPhase
[1/2] 获取最新的房间连接状态。 此时,你可以调用 getRoomPhase
[2/2] 立即获取最新的房间连接状态。RoomState com.herewhite.sdk.Room.getRoomState | ( | ) |
获取房间的所有状态。
getRoomState
[1/2] 获取最新的房间状态。 此时,如果需要立即获取最新的房间状态,可以调用 getRoomState
[2/2] 获取。RoomState
。 获取房间的所有状态。
getRoomState
获取最新的房间状态。此时,如果需要立即获取最新的房间状态,可以调用 getRoomState
[2/2] 获取。void com.herewhite.sdk.Room.setScenePath | ( | String | path | ) |
切换至指定的场景。
方法调用成功后,房间内的所有用户看到的白板都会切换到指定场景。
setScenePath
[2/2]。场景切换失败可能有以下原因:
/
开头,由场景目录和场景名构成。path | 想要切换到的场景的场景路径,请确保场景路径以 / 开头,由场景目录和场景名构成,例如,/math/classA . |
void com.herewhite.sdk.Room.setScenePath | ( | String | path, |
final Promise< Boolean > | promise | ||
) |
切换至指定的场景。
方法调用成功后,房间内的所有用户看到的白板都会切换到指定场景。
场景切换失败可能有以下原因:
path | 想要切换到的场景的场景路径,请确保场景路径以 "/",由场景目录和场景名构成,例如,/math/classA . |
promise | Promise<Boolean> 接口,详见 Promise 。你可以通过该接口获取 setScenePath 的调用结果:
|
void com.herewhite.sdk.Room.setSceneIndex | ( | Integer | index, |
@Nullable final Promise< Boolean > | promise | ||
) |
切换至当前场景目录下的指定场景。
方法调用成功后,房间内的所有用户看到的白板都会切换到指定场景。 指定的场景必须在当前场景目录中,否则,方法调用会失败。
index | 目标场景在当前场景目录下的索引号。 |
promise | Promise<Boolean> 接口,详见 Promise 。你可以通过该接口获取 setSceneIndex 的调用结果:
|
void com.herewhite.sdk.Room.putScenes | ( | String | dir, |
Scene[] | scenes, | ||
int | index | ||
) |
在指定场景目录下插入多个场景。
setScenePath
。dir | 场景目录的名称,必须以 / 开头。不能为场景路径。 |
scenes | 由多个场景构成的数组。单个场景的字段详见 Scene 。 |
index | 待插入的多个场景中,第一个场景在该场景目录的索引号。如果传入的索引号大于该场景目录已有场景总数,新插入的场景会排在现有场景的最后。场景的索引号从 0 开始。 |
示例代码
room.putScenes("ppt", new Scene[]{new Scene("page1", new PptPage("https://white-pan.oss-cn-shanghai.aliyuncs.com/101/image/alin-rusu-1239275-unsplash_opt.jpg", 1024d, 768d))}, 0);
room.setScenePath("ppt" + "/page1");
void com.herewhite.sdk.Room.moveScene | ( | String | sourcePath, |
String | targetDirOrPath | ||
) |
移动场景。
成功移动场景后,场景路径也会改变。
sourcePath
只能是场景路径,不能是场景目录路径。sourcePath | 需要移动的场景原路径。必须为场景路径,不能是场景目录的路径。 |
targetDirOrPath | 目标场景目录的路径或目标场景的路径:
|
void com.herewhite.sdk.Room.removeScenes | ( | String | dirOrPath | ) |
删除场景或者场景目录。
/init
初始场景(房间初始化时的默认场景)。dirA
,SDK 会执行向上递归逻辑选择新的场景作为当前场景,规则如下:dirB
,排在被删除的场景目录 dirA
后面,则将场景切换至 dirB
中的第一个场景(index 为 0)。dirA
后不存在场景目录,则查看当前场景目录路径下是否存在场景; 如果存在,则将场景切换至当前场景目录路径下的第一个场景(index 为 0)。dirA
后没有场景目录,也不存在任何场景,则查看 dirA
前面是否存在场景目录 dirC
;如果存在,则选择 dirC
中的第一个场景(index 为 0)。 SDK 会继续向上递归执行该逻辑,直到找到新的场景。dirOrPath | 场景目录路径或者场景路径。如果传入的是场景目录,则会删除该场景目录下的所有场景。 |
void com.herewhite.sdk.Room.cleanScene | ( | boolean | retainPpt | ) |
清除当前场景的所有内容。
retainPpt | 是否保留 PPT 内容:
|
void com.herewhite.sdk.Room.pptNextStep | ( | ) |
播放动态 PPT 下一页。
当前 PPT 页面的动画已全部执行完成时,SDK 会将场景切换至下一页 PPT。
void com.herewhite.sdk.Room.pptPreviousStep | ( | ) |
返回动态 PPT 上一页。
当前 PPT 页面的动画全部回退完成时,SDK 会将场景切回至上一页 PPT。
void com.herewhite.sdk.Room.removePage | ( | @Nullable Promise< Boolean > | promise | ) |
删除当前页面,多窗口下限定为主白板场景集当前页面。
void com.herewhite.sdk.Room.removePage | ( | int | index, |
@Nullable Promise< Boolean > | promise | ||
) |
删除当前场景集指定页面,多窗口下限定为主白板场景集下页面
index | 指定页面索引号。 |
void com.herewhite.sdk.Room.zoomChange | ( | double | scale | ) |
void com.herewhite.sdk.Room.debugInfo | ( | final Promise< JSONObject > | promise | ) |
获取调试日志信息。
promise | Promise<JSONObject> 接口实例,详见 Promise 。你可以通过该接口获取 debugInfo 的调用结果:
|
void com.herewhite.sdk.Room.disableOperations | ( | final boolean | disableOperations | ) |
允许/禁止白板响应用户任何操作。
该方法设置是否禁止白板响应用户的操作,包括:
CameraTransform
:移动、缩放视角。DeviceInputs
:使用白板工具输入。disableOperations | 允许/禁止白板响应用户任何操作。
|
void com.herewhite.sdk.Room.setWritable | ( | final boolean | writable, |
@Nullable final Promise< Boolean > | promise | ||
) |
设置用户在房间中是否为互动模式。
writable | 用户在房间中是否为互动模式:
|
promise | Promise<Boolean> 接口实例,详见 Promise 。你可以通过该接口获取 setWritable 的调用结果:
|
void com.herewhite.sdk.Room.disableEraseImage | ( | boolean | disable | ) |
关闭/开启橡皮擦擦除图片功能。
disable | 是否关闭橡皮擦擦除图片功能:
|
void com.herewhite.sdk.Room.disableCameraTransform | ( | final boolean | disableCameraTransform | ) |
禁止/允许用户调整(移动或缩放)视角。
disableCameraTransform | 是否禁止用户调整视角:
|
void com.herewhite.sdk.Room.disableDeviceInputs | ( | final boolean | disableOperations | ) |
禁止/允许用户操作白板工具。
disableOperations | 是否禁止用户操作白板工具:
|
void com.herewhite.sdk.Room.setTimeDelay | ( | double | delaySec | ) |
设置本地显示远端白板内容的延时。
调用该方法后,当本地用户接收到远端白板内容时,SDK 会根据你设置的 timeDelay
的值延迟显示白板内容。
在音视频传输延时较大的场景中,如使用 CDN 推送音视频流时,你可以使用该参数延迟显示接收到的远端白板内容,以确保白板内容与音视频同步。
delaySec | 延时时长,单位为秒。取值必须大于等于 0。默认值为 0。 |
Double com.herewhite.sdk.Room.getTimeDelay | ( | ) |
获取本地显示远端白板内容的延时。
void com.herewhite.sdk.Room.syncBlockTimestamp | ( | long | utcMs | ) |
设置本地显示远端白板内容的 Unix 时间戳(ms)。
调用该方法后,SDK 会根据你设置的 timestamp
的值显示接收到的远端白板内容。
在同时订阅音视频流和白板内容的场景中,你可以从音视频流附带的 SEI 帧中获取时间信息, 并调用该方法设置远端白板内容在本地的显示时间,以确保音视频流和白板内容实时同步。
utcMs | 远端白板内容在本地显示的 Unix 时间戳,单位为毫秒。 |