# WMPFSettingApi.setSetting

> 需 WMPF >= 2.1.0 支持，使用前建议阅读[注意事项](/doc/oplatform/Miniprogram_Frame/api/about)

设置 WMPF 选项。

WMPF 有以下选项可以设置:

| 键                                     | 值                                                 | 说明                                                                                       | 最低版本 |
|----------------------------------------|----------------------------------------------------|--------------------------------------------------------------------------------------------|----------|
| enableLeftCapsuleStyle                 | `true`, `false`                                    | 是否将胶囊按钮放到左边，一般车机系统可以设置                                               |          |
| enableSingleProcess                    | `MOST`, `SINGLE`, `MAIN_PROCESS`                   | 设置进程模型，分别是多进程、单进程、主进程模式                                             |          |
| configDarkMode                         | `0`, `1`, `2`                                      | 0: 跟随系统深色模式；1: 浅色模式；2: 深色模式 |          |
| enableDarkMode                         | `true`, `false`                                    | 是否开启暗黑模式。如果关闭，则无论系统是否启动暗黑模式，都为浅色模式。 |          |
| enableLayoutInScreen                   | `true`, `false`                                    | 浮窗小程序是否开启 `FLAG_LAYOUT_IN_SCREEN`                                                 | 2.4.0 移除，请使用 `WMPFFloatWindowOrientationSpecific#setLayoutInScreen` |
| enableKeyboardCtrl                     | `true`, `false`                                    | 是否开启键盘导航                                                                           |          |
| configSuspendTimeoutSeconds            | `0`, `1`, `5`, `30`, `60`, `300`, `1800`           | 小程序切后台挂起时间，挂起后的小程序的 JS 线程将被暂停                                     |          |
| configSuicideTimeoutSeconds            | `-1`, `0`, `1`, `5`, `30`, `60`, `300`, `1800`     | 小程序切后台退出时间，退出后小程序的资源将被回收                                           |          |
| configNoBackground                     | `true`, `false`                                    | 开启后将清理未在运行小程序的进程                                                           |          |
| configUIZoom                           | `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, `2.0` | 调整小程序原生 ui 的显示大小，设置后下一次启动小程序生效。默认 1.0                         |          |
| configUIRatio                          | 正数                                                | 竖屏小程序的窗口高宽比                                                                     |          |
| configUIReverseLandscape               | `true`, `false`                                    | 是否将小程序画面旋转 180 度，默认为 false                                                  |          |
| configCapsuleCompatModeScale           | 正数                                                | 竖屏小程序的窗口高宽比                                                                     |          |
| configCapsuleScale                     | 正数                                                | 竖屏小程序的窗口高宽比                                                                     |          |
| configMaxMemorySize                    | 正数                                                | WMPF 内存上限，如果 WMPF 内存超过该上限，尝试杀小程序。 |          |
| configMaxContainerLimit                | `1`, `2`, `3`, `4`, `5`                            | 小程序进程数目上限，若设置 `enableSingleProcess=MOST`，则可以控制小程序 container 进程数目。注意小程序个数和小程序进程数目没有必然关联，该设置项不能用于限制小程序个数，请使用 `configMaxMiniProgramProcesLimit` | 2.3.0 |
| configMaxMiniProgramProcessLimit       | 正数                                                | 小程序数目上限。小程序运行数量超限时，将尝试杀掉不需要后台存活的小程序，保留需要在后台运行小程序智能助手、播放背景音频的小程序。 | 2.4.0 |
| configKeepAliveWhenLoggingOut          | `true`, `false`                                    | 小程序是否可以调用 `wmpf.logout()` 接口登出小程序微信用户登录且保留小程序的继续运行。默认情况下用户登出后小程序将被杀死。 | 2.4.0 |
| configDrivingMaskAllowList             | 正数                                                | 选择小程序走行规制的屏蔽范围，建议通过 `WMPFUiApi.setDrivingMaskAllowList` 控制。 | 2.4.0 |
| openVoiceUsbCameraName                 | String                                             | 要使用 USB 摄像头的名称                                                                    |          |
| openVoiceUsbCameraProductId            | int                                                | 要使用 USB 摄像头的 productId                                                              |          |
| openVoiceUsbCameraVendorId             | int                                                | 要使用 USB 摄像头的 vendorId                                                               |          |
| openVoiceUsbCameraSerialNumber         | string                                             | 要使用 USB 摄像头的 serialNumber                                                           |          |
| openVoiceUsbCameraRotationAngle        | `0`, `90`, `180`, `270`                            | USB 摄像头**预览和推流画面**显示时的旋转角度，默认为 0                                     |          |
| openVoiceUsbCameraPushFlip             | `true`, `false`                                    | 系统摄像头**推流画面**是否旋转 180                                                         |          |
| openVoiceInternalCameraName            | string                                             | 指定要使用的内置摄像头的 cameraId（从安卓系统获取到的 cameraId），未传入时则自动选择摄像头 |          |
| openVoiceInternalCameraPushFlip        | `true`, `false`                                    | 系统摄像头**推流画面**是否旋转 180                                                         |          |
| openVoiceInternalCameraRotationAngle   | `0`, `90`, `180`, `270`                            | 系统摄像头**推流画面**的旋转角度，默认为 0                                                 |          |

**关于摄像头参数的说明**
- 指定 USB 摄像头名称可以使用 `openVoiceUsbCameraName`，或 `openVoiceUsbCameraProductId + openVoiceUsbCameraVendorId + openVoiceUsbCameraSerialNumber`，两种方式二选一即可。仅在指定 USB 摄像头的情况下，才会使用 USB 摄像头，其他情况下会使用系统摄像头。
- 指定内置摄像头可以使用 `openVoiceInternalCameraName` 传入从安卓系统获取到的 cameraId。
- 使用 USB 摄像头时，需使用 `openVoiceUsbCameraPushFlip` 和 `openVoiceUsbCameraRotationAngle` 设置画面旋转
- 使用系统摄像头时，需使用 `openVoiceInternalCameraPushFlip` 和 `openVoiceInternalCameraRotationAngle` 设置画面旋转，指定 `usb` 开头的配置项无效。
- 预览画面是指当前设备看到的摄像头拍到的画面，推流画面是指微信客户端内看到的当前设备拍摄的画面。
- 使用系统摄像头时，预览画面的方向是系统 API 提供的，不支持调整。

## 调用参数

| 参数  | 类型   | 说明 | 最低版本 |
|-------|--------|------|----------|
| key   | String | 键   |          |
| value | String | 值   |          |
## 返回参数

无

## 示例代码
```kotlin
val settingApi = WMPF.getInstance().getSettingApi()
settingApi.setSetting("key", "value")
```
