# com.herewhite.sdk.WhiteSdk class 参考 (/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="details"></a>

## 详细描述 [#详细描述]

适用版本：**Whiteboard Android SDK 2.16.134**。

`WhiteSdk` 类。

## 属性与 JSON 字段 [#属性与-json-字段]

Java 非公开字段通过对应 getter/setter 访问；可选包装类型未设置时通常不写入 JSON。初值包含字段声明及无参构造中的直接赋值；其他构造参数以签名为准。

| 字段 | 声明 | 源码初值 | 说明 |
| --- | --- | --- | --- |
| [audioMixerImplement](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#aba0eed27fb3254d4695f496044242861) | `AudioMixerImplement audioMixerImplement` | 未显式赋值 | [api-center-table-0 details](#table-slot-api-center-table-0) |
| [audioEffectImplement](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a95e03fbed07c9a2ae00dd29231442031) | `AudioEffectImplement audioEffectImplement` | 未显式赋值 | [api-center-table-1 details](#table-slot-api-center-table-1) |
| [slideListener](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a2245848a489a805bc1a7a851f6b37647) | `SlideListener slideListener` | 未显式赋值 | [api-center-table-2 details](#table-slot-api-center-table-2) |

<a id="table-slot-api-center-table-0"></a>

**api-center-table-0 details**

模型属性；通过对应 getter/setter 访问。

<a id="table-slot-api-center-table-1"></a>

**api-center-table-1 details**

模型属性；通过对应 getter/setter 访问。

<a id="table-slot-api-center-table-2"></a>

**api-center-table-2 details**

模型属性；通过对应 getter/setter 访问。

| 公开成员签名 |  |
| --- | --- |
|  | [WhiteSdk](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a73aa1e911a6a08ff7de4b605f7b0b32c) (JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration) |
|  | [WhiteSdk](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a7694b8a246b356de3d432da2b8eb4c0a) (JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback) |
|  | [WhiteSdk](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a335e2c96662783c39395af6093e1aa70) (JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, UrlInterrupter urlInterrupter) |
|  | [WhiteSdk](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#ad090a47a1e654bce4e8c4e81ce1ad7e3) (JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback, AudioMixerBridge audioMixerBridge) |
|  | [WhiteSdk](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a8142b727763e7342375af0f861759512) (JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback, AudioMixerBridge audioMixerBridge, AudioEffectBridge audioEffectBridge) |
| String | [Version](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a3e1a37b99f7f9dfc2bf9e191a9142868) () |
| void | [setAudioMixerBridge](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a6336fbbdb7c676d36e1698a8435542f0) (AudioMixerBridge audioMixerBridge) |
| void | [setAudioEffectBridge](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a48d9197890acc11f2e3bf9fbd0e93e2a) (AudioEffectBridge audioEffectBridge) |
| void | [setCommonCallbacks](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a7a6c33cf1d72b129c992e634f3e81a2f) (CommonCallback commonCallback) |
| AudioMixerImplement | [getAudioMixerImplement](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#af5317b1d059982b20c6f3c48912fdf61) () |
| AudioEffectImplement | [getAudioEffectImplement](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#acf859058b025848cc7e4acc04807b5de) () |
| void | [joinRoom](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a2f336e8d806643f508cd6c7c1cb0ad3b) (RoomParams roomParams, Promise&lt;Room&gt; roomPromise) |
| void | [joinRoom](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a307c801d0203f3010797c449fd6b7f49) (RoomParams roomParams, RoomListener roomListener, Promise&lt;Room&gt; roomPromise) |
| void | [createPlayer](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a685ef819eb970df4ab0ea6e513b4a6d1) (PlayerConfiguration playerConfiguration, Promise&lt;Player&gt; playerPromise) |
| void | [createPlayer](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a52f15c160d689ebb1f74801820d05607) (PlayerConfiguration playerConfiguration, PlayerListener listener, Promise&lt;Player&gt; playerPromise) |
| void | [isPlayable](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a76a9f524257626f12bc0f6f0ddd4f3a6) (PlayerConfiguration playerConfiguration, Promise&lt;Boolean&gt; playablePromise) |
| void | [setupFontFaces](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a52e56f75148bb1527efd370a9ecee1a0) (FontFace[] fontFaces) |
| void | [loadFontFaces](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a27f75d293d58992a1c9f3d6ae25ae9d9) (FontFace[] fontFaces, Promise&lt;JSONObject&gt; loadPromise) |
| void | [registerApp](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a8ae38ebf042c152e54b50cca590fa794) (WindowRegisterAppParams params, Promise&lt;Boolean&gt; registerPromise) |
| void | [getLocalLogState](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a6870772bb41b156c6decd3b65ea2eb2b) (Promise&lt;JSONObject&gt; promise) |
| void | [collectLocalLogs](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#ae8b4f11a2ac467ad52ec78454b200d40) (Promise&lt;JSONObject&gt; promise) |
| void | [flushLocalLogs](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#ac3d59db23fa6d78a5d92ad95f3393b87) (Promise&lt;JSONObject&gt; promise) |
| void | [uploadLocalLogs](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#acef917c1d41754ce628906bf9143aa65) (Promise&lt;JSONObject&gt; promise) |
| void | [reloadBackgroundImage](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#ae66ec46f024b4d67dc73a19a6bc61cd1) (ReloadBackgroundImageParams params, Promise&lt;ReloadBackgroundImageResult&gt; promise) |
| void | [hasBackgroundImage](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a94212e7f1d03bb9f873ddfa8ba124477) (HasBackgroundImageParams params, Promise&lt;Boolean&gt; promise) |
| void | [updateTextFont](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a0d82c56c6e406fc8b96a6b47ecced374) (String[] names) |
| void | [releaseRoom](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a14df05dcc0e6681aae7983538c66a93b) () |
| void | [releaseRoom](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a743253d09f13f40560e845944f357d93) (String uuid) |
| void | [releasePlayer](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#aeceb0e6867b96866585cd284d3340ef3) () |
| void | [releasePlayer](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#ad1e4ff5b0da99533b334b277b15b6d38) (String uuid) |
| void | [requestSlideLog](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#adcb9ec225769170f2f48b0a7ddc32109) (File logFile, Promise&lt;Boolean&gt; promise) |
| void | [updateSlideVolume](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a9c86735f67c57fd523d0d871b914451c) (float volume) |
| void | [getSlideVolume](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a25896f064b76f67c2f700209d9819622) (Promise&lt;Double&gt; promise) |
| void | [setSlideListener](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a9394cbd9f55e04b7430cf90bd12f54bb) (SlideListener slideListener) |
| void | [setUnifiedPageStateListener](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#aa6f040b9388bac0e459812fd6dc32cc0) (UnifiedPageStateListener listener) |
| void | [recoverSlide](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#afa8f85db0b50d403e84294604814804c) (String slideId, int slideIndex) |
| void | [recoverSlide](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#aefc7b22c66a78692a6411dbcace66564) (String slideId) |
| void | [prepareWhiteConnection](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a21f1a893a0c7eb75a81e8b4d0a75a046) (Context context, ConnectionPrepareParam param) |
| void | [reportNativeLog](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a9f9d521b6274a375731379fa84c517d5) (String[] logs) |
| [leaveRoom](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#aeddd30f3e861a75876f9e4824ed42481) | `public void leaveRoom(Promise<Object> promise)` |

## 变量说明 [#变量说明]

<a id="aba0eed27fb3254d4695f496044242861"></a>

### audioMixerImplement [#audiomixerimplement]

```text
AudioMixerImplement audioMixerImplement
```

源码初值：未显式赋值

模型属性；通过对应 getter/setter 访问。

<a id="a95e03fbed07c9a2ae00dd29231442031"></a>

### audioEffectImplement [#audioeffectimplement]

```text
AudioEffectImplement audioEffectImplement
```

源码初值：未显式赋值

模型属性；通过对应 getter/setter 访问。

<a id="a2245848a489a805bc1a7a851f6b37647"></a>

### slideListener [#slidelistener]

```text
SlideListener slideListener
```

源码初值：未显式赋值

模型属性；通过对应 getter/setter 访问。

## 函数说明 [#函数说明]

<a id="a73aa1e911a6a08ff7de4b605f7b0b32c"></a>

### WhiteSdk() [#whitesdk]

<ApiSignature>

WhiteSdk(JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration)

</ApiSignature>

初始化白板 SDK 实例。

请确保在调用其他 API 前先调用 [`WhiteSdk`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk) 创建并初始化白板 SDK 实例。

<ParameterList title="参数">
<Parameter name="bridge">

白板界面，详见 [`WhiteboardView`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-whiteboard-view)。

</Parameter>
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="whiteSdkConfiguration">

SDK 实例的配置，详见 [`WhiteSdkConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk-configuration)。

</Parameter>
</ParameterList>

<a id="a7694b8a246b356de3d432da2b8eb4c0a"></a>

### WhiteSdk() [#whitesdk-1]

<ApiSignature>

WhiteSdk(JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback)

</ApiSignature>

初始化白板 SDK 实例。

请确保在调用其他 API 前先调用 [`WhiteSdk`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk) 创建并初始化白板 SDK 实例。

<ParameterList title="参数">
<Parameter name="bridge">

白板界面，详见 [`WhiteboardView`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-whiteboard-view)。

</Parameter>
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="whiteSdkConfiguration">

SDK 实例的配置，详见 [`WhiteSdkConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk-configuration)。

</Parameter>
<Parameter name="commonCallback">

通用事件回调，详见 [`CommonCallback`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callback)。

</Parameter>
</ParameterList>

<a id="a335e2c96662783c39395af6093e1aa70"></a>

### WhiteSdk() [#whitesdk-2]

<ApiSignature>

WhiteSdk(JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, UrlInterrupter urlInterrupter)

</ApiSignature>

初始化白板 SDK 实例。

请确保在调用其他 API 前先调用 [`WhiteSdk`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk) 创建并初始化白板 SDK 实例。

<ParameterList title="参数">
<Parameter name="bridge">

白板界面，详见 [`WhiteboardView`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-whiteboard-view)。

</Parameter>
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="whiteSdkConfiguration">

SDK 实例的配置，详见 [`WhiteSdkConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk-configuration)。

</Parameter>
<Parameter name="urlInterrupter">

图片 URL 拦截设置，详见 [`UrlInterrupter`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-url-interrupter)。

</Parameter>
</ParameterList>

<a id="弃用"></a>

:::error[弃用:]
该参数已废弃。请改用 [`CommonCallbacks`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callbacks) 接口中的 [`urlInterrupter`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callback#a28839222c6e4b44a001da833300991d4) 方法。
:::

<a id="ad090a47a1e654bce4e8c4e81ce1ad7e3"></a>

### WhiteSdk() [#whitesdk-3]

<ApiSignature>

WhiteSdk(JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback, AudioMixerBridge audioMixerBridge)

</ApiSignature>

初始化白板 SDK 实例。

请确保在调用其他 API 前先调用 [`WhiteSdk`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk) 创建并初始化白板 SDK 实例。

<ParameterList title="参数">
<Parameter name="bridge">

白板界面，详见 [`WhiteboardView`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-whiteboard-view)。

</Parameter>
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="whiteSdkConfiguration">

SDK 实例的配置，详见 [`WhiteSdkConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk-configuration)。

</Parameter>
<Parameter name="commonCallback">

通用事件回调，详见 [`CommonCallback`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callback)。

</Parameter>
<Parameter name="audioMixerBridge">

混音设置，详见 [`AudioMixerBridge`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-audio-mixer-bridge)。当你同时使用 Agora RTC SDK 和互动白板 SDK, 且白板中展示的动态 PPT 中包含音频文件时，你可以调用 [`AudioMixerBridge`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-audio-mixer-bridge) 接口，将动态 PPT 中的所有音频交给 Agora RTC SDK 进行混音播放。

</Parameter>
</ParameterList>

<a id="a8142b727763e7342375af0f861759512"></a>

### WhiteSdk() [#whitesdk-4]

<ApiSignature>

WhiteSdk(JsBridgeInterface bridge, Context context, WhiteSdkConfiguration whiteSdkConfiguration, CommonCallback commonCallback, AudioMixerBridge audioMixerBridge, AudioEffectBridge audioEffectBridge)

</ApiSignature>

初始化白板 SDK 实例。
&lt;p&gt;
请确保在调用其他 API 前先调用 `WhiteSdk` 创建并初始化白板 SDK 实例。

#### 参数 [#参数]

<ParameterList title="参数">
<Parameter name="bridge">

白板界面，详见 WhiteboardView。

</Parameter>
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="whiteSdkConfiguration">

SDK 实例的配置，详见 WhiteSdkConfiguration。

</Parameter>
<Parameter name="commonCallback">

通用事件回调，详见 CommonCallback。

</Parameter>
<Parameter name="audioMixerBridge">

混音设置，详见 AudioMixerBridge。当你同时使用 Agora RTC SDK 和互动白板 SDK, 且白板中展示的动态 PPT 中包含音频文件时，你可以调用 `AudioMixerBridge` 接口，将动态 PPT 中的所有音频交给 Agora RTC SDK 进行混音播放。

</Parameter>
</ParameterList>

<a id="a3e1a37b99f7f9dfc2bf9e191a9142868"></a>

### Version() [#version]

<ApiSignature>

static String Version()

</ApiSignature>

查询 SDK 版本号。

<h4 data-toc-hidden="true" id={"返回值"}>返回值</h4>

当前的 SDK 版本号，格式为字符串，如 `"2.12.28"`。

<a id="a6336fbbdb7c676d36e1698a8435542f0"></a>

### setAudioMixerBridge() [#setaudiomixerbridge]

<ApiSignature>

static void setAudioMixerBridge(AudioMixerBridge audioMixerBridge)

</ApiSignature>

setAudioMixerBridge：com.herewhite.sdk.WhiteSdk 的公开成员。参数和返回类型见下方签名。

<a id="a48d9197890acc11f2e3bf9fbd0e93e2a"></a>

### setAudioEffectBridge() [#setaudioeffectbridge]

<ApiSignature>

static void setAudioEffectBridge(AudioEffectBridge audioEffectBridge)

</ApiSignature>

setAudioEffectBridge：com.herewhite.sdk.WhiteSdk 的公开成员。参数和返回类型见下方签名。

<a id="a7a6c33cf1d72b129c992e634f3e81a2f"></a>

### setCommonCallbacks() [#setcommoncallbacks]

<ApiSignature>

void setCommonCallbacks(CommonCallback commonCallback)

</ApiSignature>

设置通用事件回调。

SDK 通过 [`CommonCallback`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callback) 类向 app 报告 SDK 运行时的各项事件。

<ParameterList title="参数">
<Parameter name="commonCallback">

通用回调事件，详见 [`CommonCallback`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-common-callback)

</Parameter>
</ParameterList>

<a id="af5317b1d059982b20c6f3c48912fdf61"></a>

### getAudioMixerImplement() [#getaudiomixerimplement]

<ApiSignature>

AudioMixerImplement getAudioMixerImplement()

</ApiSignature>

获取 [`AudioMixerImplement`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-audio-mixer-implement) 实例。

<h4 data-toc-hidden="true" id={"返回值-1"}>返回值</h4>

[`AudioMixerImplement`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-audio-mixer-implement) 实例。

<a id="acf859058b025848cc7e4acc04807b5de"></a>

### getAudioEffectImplement() [#getaudioeffectimplement]

<ApiSignature>

AudioEffectImplement getAudioEffectImplement()

</ApiSignature>

获取 AudioEffectImplement 实例。
此实例用于接收音效相关的回调。

:::info[自此版本]
2.16.73
:::

<h4 data-toc-hidden="true" id={"返回值-2"}>返回值</h4>

方法返回值，类型为 AudioEffectImplement。

<a id="a2f336e8d806643f508cd6c7c1cb0ad3b"></a>

### joinRoom() [#joinroom]

<ApiSignature>

void joinRoom(RoomParams roomParams, Promise&lt;Room&gt; roomPromise)

</ApiSignature>

加入互动白板实时房间。

<ParameterList title="参数">
<Parameter name="roomParams">

互动白板实时房间的参数配置，详见 [`RoomParams`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room-params)。

</Parameter>
<Parameter name="roomPromise">

`Promise<`[`Room`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room)`>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `joinRoom` 的调用结果：

- 如果方法调用成功，将返回房间对象，详见 [`Room`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room)。
- 如果方法调用失败，将返回错误信息。

</Parameter>
</ParameterList>

<a id="a307c801d0203f3010797c449fd6b7f49"></a>

### joinRoom() [#joinroom-1]

<ApiSignature>

void joinRoom(RoomParams roomParams, RoomListener roomListener, Promise&lt;Room&gt; roomPromise)

</ApiSignature>

加入互动白板实时房间。

<ParameterList title="参数">
<Parameter name="roomParams">

互动白板实时房间的参数配置，详见 [`RoomParams`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room-params)。

</Parameter>
<Parameter name="roomListener">

房间事件回调，详见 [`RoomListener`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-room-listener)。在重连时，如果不传 `roomListener` 参数，则会使用上一次设置的 `roomListener`。如果要释放 `roomListener`，可以调用 [`releaseRoom`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a743253d09f13f40560e845944f357d93)。

</Parameter>
<Parameter name="roomPromise">

`Promise<`[`Room`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room)`>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `joinRoom` 的调用结果：

- 如果方法调用成功，则返回房间对象，详见 [`Room`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-room)。
- 如果方法调用失败，则返回错误信息。

</Parameter>
</ParameterList>

<a id="a685ef819eb970df4ab0ea6e513b4a6d1"></a>

### createPlayer() [#createplayer]

<ApiSignature>

void createPlayer(PlayerConfiguration playerConfiguration, Promise&lt;Player&gt; playerPromise)

</ApiSignature>

创建互动白板回放房间。

<ParameterList title="参数">
<Parameter name="playerConfiguration">

白板回放的参数配置，详见 [`PlayerConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-player-configuration)。

</Parameter>
<Parameter name="playerPromise">

`Promise<`[`Player`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-player)`>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `createPlayer` 的调用结果：

- 如果方法调用成功，将返回新创建的回放房间对象，详见 [`Player`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-player)。
- 如果方法调用失败，将返回错误信息。

</Parameter>
</ParameterList>

<a id="a52f15c160d689ebb1f74801820d05607"></a>

### createPlayer() [#createplayer-1]

<ApiSignature>

void createPlayer(PlayerConfiguration playerConfiguration, PlayerListener listener, Promise&lt;Player&gt; playerPromise)

</ApiSignature>

创建互动白板回放房间。

<ParameterList title="参数">
<Parameter name="playerConfiguration">

白板回放的参数配置，详见 [`PlayerConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-player-configuration)。

</Parameter>
<Parameter name="listener">

白板回放事件的回调，详见 [`PlayerListener`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1-player-listener)。

</Parameter>
<Parameter name="playerPromise">

`Promise<`[`Player`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-player)`>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `createPlayer` 的调用结果：

- 如果方法调用成功，将返回新创建的回放房间对象，详见 [`Player`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-player)。
- 如果方法调用失败，将返回错误信息。

</Parameter>
</ParameterList>

<a id="a76a9f524257626f12bc0f6f0ddd4f3a6"></a>

### isPlayable() [#isplayable]

<ApiSignature>

void isPlayable(PlayerConfiguration playerConfiguration, Promise&lt;Boolean&gt; playablePromise)

</ApiSignature>

查看房间是否有回放数据。

:::info[自从]
2.11.0
:::

<ParameterList title="参数">
<Parameter name="playerConfiguration">

白板回放的参数配置，详见 [`PlayerConfiguration`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-player-configuration)。

</Parameter>
<Parameter name="playablePromise">

`Promise<Boolean>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `isPlayable` 的调用结果：

- 如果方法调用成功，则返回 `true`。
- 如果方法调用失败，则返回 `false`。

</Parameter>
</ParameterList>

<a id="a52e56f75148bb1527efd370a9ecee1a0"></a>

### setupFontFaces() [#setupfontfaces]

<ApiSignature>

void setupFontFaces(FontFace[] fontFaces)

</ApiSignature>

声明在本地白板中可用的字体。

:::info[自从]
2.11.2
:::

调用该方法声明的字体可用于显示 PPT 中的文字和白板工具输入的文字。

该方法和 [`loadFontFaces`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a27f75d293d58992a1c9f3d6ae25ae9d9) 都可以声明在本地白板中可用的字体，区别是 `setupFontFaces` 没有回调，因为无法判断字体声明是否正确；`loadFontFaces` 会触发回调，报告每一种的预加载结果。

:::info[注解]
- 该方法只对本地白板生效，不影响远端白板的字体显示。

- 通过该方法声明的字体，只有当被使用时，才会触发下载。
- 不同的字体在不同设备上的渲染可能不同，例如，在某些设备上，要等字体加载完成后，才会渲染文字；而在另外一些设备上，会先使用默认的字体渲染文字，等指定的字体加载完毕后，再整体刷新。
- 每次调用该方法都会覆盖原来的字体声明。
- 请勿同时调用该方法和 `loadFontFaces` 方法。否则，无法预期行为。
:::

<ParameterList title="参数">
<Parameter name="fontFaces">

`FontFace` 实例，详见 [`FontFace`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-font-face)。

</Parameter>
</ParameterList>

<a id="a27f75d293d58992a1c9f3d6ae25ae9d9"></a>

### loadFontFaces() [#loadfontfaces]

<ApiSignature>

void loadFontFaces(FontFace[] fontFaces, Promise&lt;JSONObject&gt; loadPromise)

</ApiSignature>

声明并预加载在本地白板中可用的字体。

:::info[自从]
2.11.2
:::

调用该方法预加载的字体可以用于显示 PPT 中的文字和白板工具输入的文字。

该方法和 [`setupFontFaces`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1-white-sdk#a52e56f75148bb1527efd370a9ecee1a0) 都可以声明在本地白板中可用的字体，区别是 `setupFontFaces` 没有回调，因为无法判断字体声明是否正确；`loadFontFaces` 会触发回调，报告每一种的预加载结果。

:::info[注解]
- 该方法只对本地白板生效，不影响远端白板的字体显示。
- 使用该方法预加载的字体，只有当该字体被使用时，才会触发下载。
- 不同的字体在不同设备上的渲染可能不同，例如，在某些设备上，要等字体加载完成后，才会渲染文字；而在另外一些设备上，会先使用默认的字体渲染文字，等指定的字体加载完毕后，再整体刷新。
- 通过该方法预加载的字体无法删除，每次调用都会在原来的基础上新增。
- 请勿同时调用该方法和 `setupFontFaces` 方法。否则，无法预期行为。
:::

<ParameterList title="参数">
<Parameter name="fontFaces">

指定的字体，详见 [`FontFace`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-font-face)。

</Parameter>
<Parameter name="loadPromise">

`Promise<JSONObject>` 接口实例，详见 [`Promise`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1domain-1-1-promise)。你可以通过该接口获取 `loadFontFaces` 的调用结果：

- 如果方法调用成功，则返回 `FontFace` 对象。
- 如果方法调用失败，则返回错误信息。

</Parameter>
</ParameterList>

<a id="a8ae38ebf042c152e54b50cca590fa794"></a>

### registerApp() [#registerapp]

<ApiSignature>

void registerApp(WindowRegisterAppParams params, Promise&lt;Boolean&gt; registerPromise)

</ApiSignature>

在添加自定义 App 前注册 App，kind 必须一致。URL 注册或 JS 字符串注册参数见 WindowRegisterAppParams。

<a id="a6870772bb41b156c6decd3b65ea2eb2b"></a>

### getLocalLogState() [#getlocallogstate]

<ApiSignature>

void getLocalLogState(Promise&lt;JSONObject&gt; promise)

</ApiSignature>

查询 WebView 内本地日志运行状态，异步返回 JSON 对象。

<a id="ae8b4f11a2ac467ad52ec78454b200d40"></a>

### collectLocalLogs() [#collectlocallogs]

<ApiSignature>

void collectLocalLogs(Promise&lt;JSONObject&gt; promise)

</ApiSignature>

收集本地诊断日志，异步返回 JSON 对象；需要初始化时显式开启本地日志。

<a id="ac3d59db23fa6d78a5d92ad95f3393b87"></a>

### flushLocalLogs() [#flushlocallogs]

<ApiSignature>

void flushLocalLogs(Promise&lt;JSONObject&gt; promise)

</ApiSignature>

将 WebView 内本地日志刷新到持久化存储，异步返回 JSON 对象。

<a id="acef917c1d41754ce628906bf9143aa65"></a>

### uploadLocalLogs() [#uploadlocallogs]

<ApiSignature>

void uploadLocalLogs(Promise&lt;JSONObject&gt; promise)

</ApiSignature>

触发本地日志上传；enabled 与 enabledUpload 均需启用，结果通过异步 JSON 和日志状态事件观察。

<a id="ae66ec46f024b4d67dc73a19a6bc61cd1"></a>

### reloadBackgroundImage() [#reloadbackgroundimage]

<ApiSignature>

void reloadBackgroundImage(ReloadBackgroundImageParams params, Promise&lt;ReloadBackgroundImageResult&gt; promise)

</ApiSignature>

重新加载当前聚焦场景此前失败的 Appliance Plugin 背景图。参数包含 source="appliance"、viewId 和可选 scenePath/url；返回 accepted/reloadedCount/可选 reason，accepted 不表示图片已加载成功。需要同时开启 useMultiViews 和 enableAppliancePlugin。

<a id="a94212e7f1d03bb9f873ddfa8ba124477"></a>

### hasBackgroundImage() [#hasbackgroundimage]

<ApiSignature>

void hasBackgroundImage(HasBackgroundImageParams params, Promise&lt;Boolean&gt; promise)

</ApiSignature>

按 viewId、scenePath、imageUrl 及 sources 查询 Appliance Plugin 管理的背景图，sources 填写 ["appliance"]，返回布尔值。需要同时开启 useMultiViews 和 enableAppliancePlugin。

<a id="a0d82c56c6e406fc8b96a6b47ecced374"></a>

### updateTextFont() [#updatetextfont]

<ApiSignature>

void updateTextFont(String[] names)

</ApiSignature>

设置文字白板工具在本地白板中使用的字体。

:::info[自从]
2.11.2
:::

:::info[注解]
- 该方法只对本地白板生效，不影响远端白板的字体显示。
- 该方法只能设置文字白板工具使用的字体，不能用于 PPT 中的文字显示。
:::

<ParameterList title="参数">
<Parameter name="names">

字体名称。如果用户系统中不存在该字体，则文字白板工具无法使用该字体。请确保你已经调用 `setupFontFaces` 或 `loadFontFaces` 将指定字体加载到本地白板中。

</Parameter>
</ParameterList>

<a id="a14df05dcc0e6681aae7983538c66a93b"></a>

### releaseRoom() [#releaseroom]

<ApiSignature>

void releaseRoom()

</ApiSignature>

释放 Native 房间实例和监听资源；业务侧应先调用 disconnect 并处理完成，再释放。

<a id="a743253d09f13f40560e845944f357d93"></a>

### releaseRoom() [#releaseroom-1]

<ApiSignature>

void releaseRoom(String uuid)

</ApiSignature>

释放 Native 房间实例和监听资源；业务侧应先调用 disconnect 并处理完成，再释放。

<a id="aeceb0e6867b96866585cd284d3340ef3"></a>

### releasePlayer() [#releaseplayer]

<ApiSignature>

void releasePlayer()

</ApiSignature>

释放 Native 回放实例和监听资源。

<a id="ad1e4ff5b0da99533b334b277b15b6d38"></a>

### releasePlayer() [#releaseplayer-1]

<ApiSignature>

void releasePlayer(String uuid)

</ApiSignature>

释放 Native 回放实例和监听资源。

<a id="adcb9ec225769170f2f48b0a7ddc32109"></a>

### requestSlideLog() [#requestslidelog]

<ApiSignature>

void requestSlideLog(File logFile, Promise&lt;Boolean&gt; promise)

</ApiSignature>

请求 Slide 的日志。

<ParameterList title="参数">
<Parameter name="logFile">

用于存储 Slide 日志的日志文件。

</Parameter>
<Parameter name="promise">

请求调用回调结果。

</Parameter>
</ParameterList>

<a id="a9c86735f67c57fd523d0d871b914451c"></a>

### updateSlideVolume() [#updateslidevolume]

<ApiSignature>

void updateSlideVolume(float volume)

</ApiSignature>

更新当前 PPT 的音量。

<ParameterList title="参数">
<Parameter name="volume">

音量值，取值范围为 (0,1]。

</Parameter>
</ParameterList>

<a id="a25896f064b76f67c2f700209d9819622"></a>

### getSlideVolume() [#getslidevolume]

<ApiSignature>

void getSlideVolume(Promise&lt;Double&gt; promise)

</ApiSignature>

获取当前 PPT 的音量。

<ParameterList title="参数">
<Parameter name="promise">

方法调用结果，包含 `volume` 和 `error` 两个字段：

- 调用成功：`volume` 返回值为 (0,1] 之间的值，代表当前 PPT 的音量，`error` 返回值为 `nil`。
- 调用失败：`volume` 返回值为 0，`error` 返回值为错误消息。

</Parameter>
</ParameterList>

<a id="a9394cbd9f55e04b7430cf90bd12f54bb"></a>

### setSlideListener() [#setslidelistener]

<ApiSignature>

void setSlideListener(SlideListener slideListener)

</ApiSignature>

设置 SlideApp 回调。 SlideApp 通过 `SlideListener` 类向 app 报告内部运行时的各项事件。

<ParameterList title="参数">
<Parameter name="slideListener">

通用回调事件，详见 [`SlideListener`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/interfacecom-1-1herewhite-1-1sdk-1-1window-1-1-slide-listener)。

</Parameter>
</ParameterList>

<a id="aa6f040b9388bac0e459812fd6dc32cc0"></a>

### setUnifiedPageStateListener() [#setunifiedpagestatelistener]

<ApiSignature>

void setUnifiedPageStateListener(UnifiedPageStateListener listener)

</ApiSignature>

设置或移除统一页状态监听器，接收实际页码/倍率观察与异步命令失败；传 null 移除监听。

<a id="afa8f85db0b50d403e84294604814804c"></a>

### recoverSlide() [#recoverslide]

<ApiSignature>

void recoverSlide(String slideId, int slideIndex)

</ApiSignature>

恢复 Slide

#### 参数 [#参数-1]

<ParameterList title="参数">
<Parameter name="slideId">

使用错误消息里告知的 slideId

</Parameter>
<Parameter name="slideIndex">

指定要跳转到哪一页, 如果想要跳转到下一页可以使用错误消息里告知的报错页码 + 1

</Parameter>
</ParameterList>

<a id="aefc7b22c66a78692a6411dbcace66564"></a>

### recoverSlide() [#recoverslide-1]

<ApiSignature>

void recoverSlide(String slideId)

</ApiSignature>

恢复指定 PPT 的渲染状态。

如果 PPT 渲染失败，你可以调用该方法恢复 PPT 的渲染状态。

<ParameterList title="参数">
<Parameter name="slideId">

PPT ID。

</Parameter>
</ParameterList>

<a id="a21f1a893a0c7eb75a81e8b4d0a75a046"></a>

### prepareWhiteConnection() [#preparewhiteconnection]

<ApiSignature>

static void prepareWhiteConnection(Context context, ConnectionPrepareParam param)

</ApiSignature>

提前选择线路以加快首次加入白板房间时的连接速度。

声网建议在加入白板房间前调用该方法，例如设备检测页、白板房间列表页等，有助于提升加入白板房间的连接速度。

<ParameterList title="参数">
<Parameter name="context">

安卓活动 (Android Activity) 的上下文。

</Parameter>
<Parameter name="param">

白板预连接参数，详见 [`ConnectionPrepareParam`](/zh-CN/api-reference/whiteboard/whiteboard-sdk/android/classcom-1-1herewhite-1-1sdk-1-1domain-1-1-connection-prepare-param)。

</Parameter>
</ParameterList>

<a id="a9f9d521b6274a375731379fa84c517d5"></a>

### reportNativeLog() [#reportnativelog]

<ApiSignature>

void reportNativeLog(String[] logs)

</ApiSignature>

reportNativeLog：com.herewhite.sdk.WhiteSdk 的公开成员。参数和返回类型见下方签名。

## 公开成员函数 [#公开成员函数]

<a id="aeddd30f3e861a75876f9e4824ed42481"></a>

### leaveRoom [#leaveroom]

```text
public void leaveRoom(Promise<Object> promise)
```

异步退出当前宿主所属 Room。成功的 Object 仅为完成通知，不包含房间状态或可读取的 closed 字段；失败调用 catchEx。退出完成后再释放资源或继续下一次入房。
