# 视频双流 (/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream)

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

<a id="toc_dual_stream"></a>

<a id="api_irtcengine_enabledualstreammode"></a>

<a id="ariaid-title2"></a>

## EnableDualStreamMode [1/2] [#enabledualstreammode-12]

在发送端开启或关闭双流模式。

<a id="api_irtcengine_enabledualstreammode__prototype"></a>

```csharp
public abstract int EnableDualStreamMode(bool enabled);
```

<a id="api_irtcengine_enabledualstreammode__detailed_desc"></a>

### 详情 [#详情]

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

:::error[弃用：]
从 v4.2.0 起废弃，请改用 [SetDualStreamMode [1/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode)。
:::

双流指视频大流和视频小流：

- 视频大流：高分辨率、高帧率的视频流。
- 视频小流：低分辨率、低帧率的视频流。

开启双流模式后，你可以在收流端调用 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype) 选择接收视频大流或视频小流。

:::note
注：

- 该方法适用于发送端发送的所有类型的流，包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。
- 如果需要在多频道场景下开启视频双流，可以调用 [EnableDualStreamModeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_enabledualstreammodeex) 方法。
- 该方法可以在加入频道前后调用。
:::

<a id="api_irtcengine_enabledualstreammode__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="enabled"></a>
<Parameter name="enabled">

是否开启双流模式。

- `true`: 开启双流模式。
- `false`: (默认) 关闭双流模式。

</Parameter>
</ParameterList>

<a id="api_irtcengine_enabledualstreammode__return_values"></a>

### 返回值 [#返回值]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_irtcengine_enabledualstreammode3"></a>

<a id="ariaid-title3"></a>

## EnableDualStreamMode [2/2] [#enabledualstreammode-22]

在发送端开启或关闭双流模式并设置视频小流。

<a id="api_irtcengine_enabledualstreammode3__prototype"></a>

```csharp
public abstract int EnableDualStreamMode(bool enabled, SimulcastStreamConfig streamConfig);
```

<a id="api_irtcengine_enabledualstreammode3__detailed_desc"></a>

### 详情 [#详情-1]

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

:::error[弃用：]
从 v4.2.0 起废弃，请改用 [SetDualStreamMode [2/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode2)。
:::

<a id="api_irtcengine_enabledualstreammode3__desc1"></a>

你可以在发流端调用该方法开启或关闭双流模式。双流指视频大流和视频小流：

- 视频大流：高分辨率、高帧率的视频流。
- 视频小流：低分辨率、低帧率的视频流。

<a id="api_irtcengine_enabledualstreammode3__desc2"></a>

开启双流模式后，你可以在收流端调用 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype) 选择接收视频大流或视频小流。

<a id="api_irtcengine_enabledualstreammode3__seq"></a>

:::note
注：

- 该方法适用于发送端发送的所有类型的流，包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。
- 如果需要在多频道场景下开启视频双流，可以调用 [EnableDualStreamModeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_enabledualstreammodeex) 方法。
- 该方法可以在加入频道前后调用。
:::

<a id="api_irtcengine_enabledualstreammode3__parameters"></a>

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

<a id="api_irtcengine_enabledualstreammode3__parml_mfj_z3z_hqb"></a>

<ParameterList>
<a id="enabled-1"></a>
<Parameter name="enabled">

是否开启双流模式：

- `true`: 开启双流模式。
- `false`: (默认) 关闭双流模式。

</Parameter>
<a id="streamconfig"></a>
<Parameter name="streamConfig">

视频小流的配置。详见 [SimulcastStreamConfig](/zh-CN/api-reference/rtc/csharp-windows/class-simulcaststreamconfig)。

:::note
注： 当设置 mode 为 DISABLE_SIMULCAST_STREAM 时，再设置 streamConfig 不会生效。
:::

</Parameter>
</ParameterList>

<a id="api_irtcengine_enabledualstreammode3__return_values"></a>

### 返回值 [#返回值-1]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。 详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类]

- [IRtcEngine](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_enabledualstreammodeex"></a>

<a id="ariaid-title4"></a>

## EnableDualStreamModeEx [#enabledualstreammodeex]

在发送端开启或关闭双流模式。

<a id="api_irtcengineex_enabledualstreammodeex__prototype"></a>

```csharp
public abstract int EnableDualStreamModeEx(bool enabled, SimulcastStreamConfig streamConfig, RtcConnection connection);
```

<a id="api_irtcengineex_enabledualstreammodeex__detailed_desc"></a>

### 详情 [#详情-2]

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

:::error[弃用：]
从 v4.2.0 起废弃，请改用 [SetDualStreamModeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_setdualstreammodeex)。
:::

你可以在发流端调用该方法开启或关闭双流模式。双流指视频大流和视频小流：

- 视频大流：高分辨率、高帧率的视频流。
- 视频小流：低分辨率、低帧率的视频流。

开启双流模式后，你可以在收流端调用 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype) 选择接收视频大流或视频小流。

:::note
注： 该方法适用于发送端发送的所有类型的流，包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。
:::

<a id="api_irtcengineex_enabledualstreammodeex__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="enabled-2"></a>
<Parameter name="enabled">

是否开启双流模式：

- `true`: 开启双流模式。
- `false`: (默认) 关闭双流模式。

</Parameter>
<a id="streamconfig-1"></a>
<Parameter name="streamConfig">

视频小流的配置。详见 [SimulcastStreamConfig](/zh-CN/api-reference/rtc/csharp-windows/class-simulcaststreamconfig)。

:::note
注： 当设置 mode 为 DISABLE_SIMULCAST_STREAM 时，再设置 streamConfig 不会生效。
:::

</Parameter>
<a id="connection"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/csharp-windows/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_enabledualstreammodeex__return_values"></a>

### 返回值 [#返回值-2]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。 详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-1]

- [IRtcEngineEx](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_setdualstreammode"></a>

<a id="ariaid-title5"></a>

## SetDualStreamMode [1/2] [#setdualstreammode-12]

在发送端设置双流模式。

<a id="api_irtcengine_setdualstreammode__prototype"></a>

```csharp
public abstract int SetDualStreamMode(SIMULCAST_STREAM_MODE mode);
```

<a id="api_irtcengine_setdualstreammode__detailed_desc"></a>

### 详情 [#详情-3]

<a id="api_irtcengine_setdualstreammode__desc"></a>

SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即发送端不主动发送小流，**主播身份**的接收端可以调用 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype) 发起小流申请，发送端收到申请后开始自动发送小流。

- 如果你想修改此行为，可以调用该方法并修改 mode 为 DISABLE_SIMULCAST_STREAM（始终不发送小流）或 ENABLE_SIMULCAST_STREAM（始终发送小流）。
- 如果你在进行修改后又想恢复该默认行为，可重新调用该方法，并将 mode 设置为 AUTO_SIMULCAST_STREAM。

<a id="api_irtcengine_setdualstreammode__note"></a>

:::note
注： 该方法和 [EnableDualStreamMode [1/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_enabledualstreammode) 的区别与联系如下：

- 调用该方法并设置 mode 为 DISABLE_SIMULCAST_STREAM 时，跟 EnableDualStreamMode [1/2]`(false)` 的效果相同。
- 调用该方法并设置 mode 为 ENABLE_SIMULCAST_STREAM 时，跟 EnableDualStreamMode [1/2]`(true)` 的效果相同。
- 两种方法均可在加入频道前后调用，若同时使用，则以后调用的方法中的设置为准。
:::

<a id="api_irtcengine_setdualstreammode__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="mode"></a>
<Parameter name="mode">

发送视频流的模式。详见 [SIMULCAST_STREAM_MODE](/zh-CN/api-reference/rtc/csharp-windows/enum-simulcaststreammode)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setdualstreammode__return_values"></a>

### 返回值 [#返回值-3]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

<a id="api_irtcengine_setdualstreammode2"></a>

<a id="ariaid-title6"></a>

## SetDualStreamMode [2/2] [#setdualstreammode-22]

在发送端设置双流模式并设置视频小流。

<a id="api_irtcengine_setdualstreammode2__prototype"></a>

```csharp
public abstract int SetDualStreamMode(SIMULCAST_STREAM_MODE mode, SimulcastStreamConfig streamConfig);
```

<a id="api_irtcengine_setdualstreammode2__detailed_desc"></a>

### 详情 [#详情-4]

SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即发送端不主动发送小流，**主播身份**的接收端可以调用 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype) 发起小流申请，发送端收到申请后开始自动发送小流。

- 如果你想修改此行为，可以调用该方法并修改 mode 为 DISABLE_SIMULCAST_STREAM（始终不发送小流）或 ENABLE_SIMULCAST_STREAM（始终发送小流）。
- 如果你在进行修改后又想恢复该默认行为，可重新调用该方法，并将 mode 设置为 AUTO_SIMULCAST_STREAM。

该方法跟 [SetDualStreamMode [1/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode) 的区别在于，该方法还可以进行视频小流的配置，SDK 会根据 streamConfig 中的配置发送小流。

<a id="api_irtcengine_setdualstreammode2__note"></a>

:::note
注： 该方法和 [EnableDualStreamMode [2/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_enabledualstreammode3) 的区别与联系如下：

- 调用该方法并设置 mode 为 DISABLE_SIMULCAST_STREAM 时，跟调用 EnableDualStreamMode [2/2] 并设置 enabled 为 `false` 的效果相同。
- 调用该方法并设置 mode 为 ENABLE_SIMULCAST_STREAM 时，跟调用 EnableDualStreamMode [2/2] 并设置 enabled 为 `true` 的效果相同。
- 两种方法均可在加入频道前后调用，若同时使用，则以后调用的方法中的设置为准。
:::

<a id="api_irtcengine_setdualstreammode2__parameters"></a>

### 参数 [#参数-4]

<ParameterList>
<a id="mode-1"></a>
<Parameter name="mode">

发送视频流的模式。详见 [SIMULCAST_STREAM_MODE](/zh-CN/api-reference/rtc/csharp-windows/enum-simulcaststreammode)。

</Parameter>
<a id="streamconfig-2"></a>
<Parameter name="streamConfig">

视频小流的配置。详见 [SimulcastStreamConfig](/zh-CN/api-reference/rtc/csharp-windows/class-simulcaststreamconfig)。

:::note
注： 当设置 mode 为 DISABLE_SIMULCAST_STREAM 时，再设置 streamConfig 不会生效。
:::

</Parameter>
</ParameterList>

<a id="api_irtcengine_setdualstreammode2__return_values"></a>

### 返回值 [#返回值-4]

<a id="api_irtcengine_setdualstreammode2__ul_bpp_x2z_hqb"></a>

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。 详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-2]

- [IRtcEngine](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_setdualstreammodeex"></a>

<a id="ariaid-title7"></a>

## SetDualStreamModeEx [#setdualstreammodeex]

在发送端设置双流模式。

<a id="api_irtcengineex_setdualstreammodeex__prototype"></a>

```csharp
public abstract int SetDualStreamModeEx(SIMULCAST_STREAM_MODE mode, SimulcastStreamConfig streamConfig, RtcConnection connection);
```

<a id="api_irtcengineex_setdualstreammodeex__detailed_desc"></a>

### 详情 [#详情-5]

<a id="api_irtcengineex_setdualstreammodeex__desc"></a>

SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即发送端不主动发送小流，**主播身份**的接收端可以调用 [SetRemoteVideoStreamTypeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_setremotevideostreamtypeex) 发起小流申请，发送端收到申请后开始自动发送小流。

- 如果你想修改此行为，可以调用该方法并修改 mode 为 DISABLE_SIMULCAST_STREAM（始终不发送小流）或 ENABLE_SIMULCAST_STREAM（始终发送小流）。
- 如果你在进行修改后又想恢复该默认行为，可重新调用该方法，并将 mode 设置为 AUTO_SIMULCAST_STREAM。

<a id="api_irtcengineex_setdualstreammodeex__note"></a>

:::note
注： 该方法和 [EnableDualStreamModeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_enabledualstreammodeex) 的区别与联系如下：

- 调用该方法并设置 mode 为 DISABLE_SIMULCAST_STREAM 时，跟 EnableDualStreamModeEx`(false)` 的效果相同。
- 调用该方法并设置 mode 为 ENABLE_SIMULCAST_STREAM 时，跟 EnableDualStreamModeEx`(true)` 的效果相同。
- 两种方法均可在加入频道前后调用，若同时使用，则以后调用的方法中的设置为准。
:::

<a id="api_irtcengineex_setdualstreammodeex__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="mode-2"></a>
<Parameter name="mode">

发送视频流的模式。详见 [SIMULCAST_STREAM_MODE](/zh-CN/api-reference/rtc/csharp-windows/enum-simulcaststreammode)。

</Parameter>
<a id="streamconfig-3"></a>
<Parameter name="streamConfig">

视频小流的配置。详见 [SimulcastStreamConfig](/zh-CN/api-reference/rtc/csharp-windows/class-simulcaststreamconfig)。

:::note
注： 当设置 mode 为 DISABLE_SIMULCAST_STREAM 时，再设置 streamConfig 不会生效。
:::

</Parameter>
<a id="connection-1"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/csharp-windows/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setdualstreammodeex__return_values"></a>

### 返回值 [#返回值-5]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。 详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-3]

- [IRtcEngineEx](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_setremotedefaultvideostreamtype"></a>

<a id="ariaid-title8"></a>

## SetRemoteDefaultVideoStreamType [#setremotedefaultvideostreamtype]

设置默认订阅的视频流类型。

<a id="api_irtcengine_setremotedefaultvideostreamtype__prototype"></a>

```csharp
public abstract int SetRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType);
```

<a id="api_irtcengine_setremotedefaultvideostreamtype__detailed_desc"></a>

取决于发送端的默认行为和调用 [SetDualStreamMode [2/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode2) 的具体设置，接收端调用该方法分为以下几种情况：

- SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即：发送端仅发送大流，仅**主播身份**的接收端可以调用该方法发起小流申请，发送端收到申请后开始自动发送小流，此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 ENABLE_SIMULCAST_STREAM（始终发送小流），则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

在接收视频小流时，SDK 会根据视频窗口的大小动态调整对应视频流的大小，以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比，系统会自动分配小流的分辨率、帧率及码率。

<a id="api_irtcengine_setremotedefaultvideostreamtype__timing"></a>

### 调用时机 [#调用时机]

该方法只能在加入频道前调用。SDK 不支持你在加入频道后修改默认订阅的视频流类型。

<a id="api_irtcengine_setremotedefaultvideostreamtype__restriction"></a>

### 调用限制 [#调用限制]

如果你既调用了该方法，也调用了 [SetRemoteVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotevideostreamtype)，则 SDK 以 SetRemoteVideoStreamType 中的设置为准。

<a id="api_irtcengine_setremotedefaultvideostreamtype__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="streamtype"></a>
<Parameter name="streamType">

默认订阅的视频流类型: [VIDEO_STREAM_TYPE](/zh-CN/api-reference/rtc/csharp-windows/enum-videostreamtype)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setremotedefaultvideostreamtype__return_values"></a>

### 返回值 [#返回值-6]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [IRtcEngine](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setremotevideostreamtype"></a>

<a id="ariaid-title9"></a>

## SetRemoteVideoStreamType [#setremotevideostreamtype]

设置订阅的视频流类型。

<a id="api_irtcengine_setremotevideostreamtype__prototype"></a>

```csharp
public abstract int SetRemoteVideoStreamType(uint uid, VIDEO_STREAM_TYPE streamType);
```

<a id="api_irtcengine_setremotevideostreamtype__detailed_desc"></a>

### 详情 [#详情-6]

<a id="api_irtcengine_setremotevideostreamtype__desc1"></a>

取决于发送端的默认行为和调用 [SetDualStreamMode [2/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode2) 的具体设置，接收端调用该方法分为以下几种情况：

- SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即：发送端仅发送大流，仅**主播身份**的接收端可以调用该方法发起小流申请，发送端收到申请后开始自动发送小流，此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 ENABLE_SIMULCAST_STREAM（始终发送小流），则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

<a id="api_irtcengine_setremotevideostreamtype__desc2"></a>

在接收视频小流时，SDK 会根据视频窗口的大小动态调整对应视频流的大小，以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比，系统会自动分配小流的分辨率、帧率及码率。

<a id="api_irtcengine_setremotevideostreamtype__note"></a>

:::caution
注意：

- 该方法在加入频道前后都能调用。
- 如果既调用了该方法，也调用了 [SetRemoteDefaultVideoStreamType](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setremotedefaultvideostreamtype)，则 SDK 以该方法中的设置为准。
:::

<a id="api_irtcengine_setremotevideostreamtype__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="uid"></a>
<Parameter name="uid">

用户 ID。

</Parameter>
<a id="streamtype-1"></a>
<Parameter name="streamType">

视频流类型: [VIDEO_STREAM_TYPE](/zh-CN/api-reference/rtc/csharp-windows/enum-videostreamtype)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setremotevideostreamtype__return_values"></a>

### 返回值 [#返回值-7]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-5]

- [IRtcEngine](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_setremotevideostreamtypeex"></a>

<a id="ariaid-title10"></a>

## SetRemoteVideoStreamTypeEx [#setremotevideostreamtypeex]

设置订阅的视频流类型。

<a id="api_irtcengineex_setremotevideostreamtypeex__prototype"></a>

```csharp
public abstract int SetRemoteVideoStreamTypeEx(uint uid, VIDEO_STREAM_TYPE streamType, RtcConnection connection);
```

<a id="api_irtcengineex_setremotevideostreamtypeex__detailed_desc"></a>

### 详情 [#详情-7]

取决于发送端的默认行为和调用 [SetDualStreamMode [2/2]](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengine_setdualstreammode2) 的具体设置，接收端调用该方法分为以下几种情况：

- SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即：发送端仅发送大流，仅**主播身份**的接收端可以调用该方法发起小流申请，发送端收到申请后开始自动发送小流，此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效。
- 当发送端调用 SetDualStreamMode [2/2] 并将 mode 设置为 ENABLE_SIMULCAST_STREAM（始终发送小流），则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

在接收视频小流时，SDK 会根据视频窗口的大小动态调整对应视频流的大小，以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比，系统会自动分配小流的分辨率、帧率及码率。

<a id="api_irtcengineex_setremotevideostreamtypeex__note"></a>

:::caution
注意： 如果发送端已调用 [SetDualStreamModeEx](/zh-CN/api-reference/rtc/csharp-windows/video/video-codec/dual-stream#api_irtcengineex_setdualstreammodeex) 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效，你需要在发送端重新调用 SetDualStreamModeEx 修改设置。
:::

<a id="api_irtcengineex_setremotevideostreamtypeex__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="uid-1"></a>
<Parameter name="uid">

用户 ID。

</Parameter>
<a id="streamtype-2"></a>
<Parameter name="streamType">

视频流类型: [VIDEO_STREAM_TYPE](/zh-CN/api-reference/rtc/csharp-windows/enum-videostreamtype)。

</Parameter>
<a id="connection-2"></a>
<Parameter name="connection">

Connection 信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/csharp-windows/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setremotevideostreamtypeex__return_values"></a>

### 返回值 [#返回值-8]

- 0: 方法调用成功。
- &lt; 0: 方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-6]

- [IRtcEngineEx](/zh-CN/api-reference/rtc/csharp-windows/rtc-interface-class#class_irtcengineex)
