# Interface ClientConfig (/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/clientconfig)

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

在调用 [createClient](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/iagorartc#createclient) 创建客户端对象时，你需要配置该接口。

> [mode](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/clientconfig#mode) 和 [codec](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/clientconfig#codec) 属性必须设置。

## Properties [#properties]

<a id="clientroleoptions"></a>

<a id="optional-clientroleoptions"></a>

### clientRoleOptions [#clientroleoptions]

<ApiSignature labels="Optional">

clientRoleOptions: [ClientRoleOptions](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/clientroleoptions)

</ApiSignature>

用户角色的具体设置，包含用户级别。

用户级别确定用户在其角色权限范围内可以操作和享受到的服务级别。例如对于观众，选择接收低延时还是超低延时的视频流。不同的级别会影响计费。

<a id="codec"></a>

### codec [#codec]

<ApiSignature>

codec: [SDK_CODEC](/zh-CN/api-reference/rtc/react-sdk/web-sdk/globals#sdk_codec)

</ApiSignature>

浏览器使用的编码格式，有以下选择：

- `"vp8"`: 浏览器使用 VP8 编码。
- `"h264"`: 浏览器使用 H.264 编码。
- `"vp9"`: (Beta) 浏览器使用 VP9 编码。
- `"av1"`: 浏览器使用 AV1 编码。

> Safari 12.1 及之前版本不支持 VP8 编码。

<a id="mode"></a>

### mode [#mode]

<ApiSignature>

mode: [SDK_MODE](/zh-CN/api-reference/rtc/react-sdk/web-sdk/globals#sdk_mode)

</ApiSignature>

频道场景。

Agora Web SDK 需知道 app 的使用场景（例如通信场景或直播场景），从而使用不同的优化手段。

声网频道支持以下场景:

- `"live"`: 直播场景，有主播和观众两种用户角色，可以通过 [setClientRole](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/iagorartcclient#setclientrole) 方法设置用户角色为主播或观众。主播可以发布和订阅音视频轨道，而观众只能订阅音视频轨道，无法发布。
- `"rtc"`: 通信场景，用于常见的一对一通话或群聊，频道中的任何用户可以自由说话。

<a id="role"></a>

<a id="optional-role"></a>

### role [#role]

<ApiSignature labels="Optional">

role: [ClientRole](/zh-CN/api-reference/rtc/react-sdk/web-sdk/globals#clientrole)

</ApiSignature>

直播场景中（[mode](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/clientconfig#mode) 为 `"live"` 时）的用户角色。

用户角色确定用户在 SDK 层的权限，包含是否可以发布和订阅音视频轨道、是否可以推流到 CDN。用户角色有 `"host"`（主播）和 `"audience"`（观众）。主播既可发布轨道，也可订阅轨道；观众不能进行 [publish](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/iagorartcclient#publish) 操作。直播场景中的用户角色默认为观众。如需发布音视频，必须将角色角色为主播。

在创建客户端之后，你可以随时调用 [setClientRole](/zh-CN/api-reference/rtc/react-sdk/web-sdk/interfaces/iagorartcclient#setclientrole) 来改变用户角色。
