# 发布和订阅 (/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe)

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

<a id="toc_publishnsubscribe"></a>

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

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

## EnableDualStreamMode [#enabledualstreammode]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int EnableDualStreamMode(bool enabled, const FSimulcastStreamConfig& streamConfig);
```

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

### 详情 [#详情]

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

:::error[弃用：]
从 v4.2.0 起废弃，请改用 [SetDualStreamMode](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setdualstreammode2)。
:::

<a id="api_irtcengine_enabledualstreammode3__d139e57"></a>

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

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

<a id="api_irtcengine_enabledualstreammode3__d139e68"></a>

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

<a id="api_irtcengine_enabledualstreammode3__d139e75"></a>

:::note
注：

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

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

### 参数 [#参数]

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

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

是否开启双流模式：

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

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

视频小流的配置。详见 [FSimulcastStreamConfig](/zh-CN/api-reference/rtc/unreal-blueprint/class-simulcaststreamconfig)。

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

</Parameter>
</ParameterList>

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

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

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

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

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

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

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

## EnableDualStreamModeEx [#enabledualstreammodeex]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int EnableDualStreamModeEx(bool enabled, const FSimulcastStreamConfig& streamConfig, const FRtcConnection& connection);
```

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

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

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

:::error[弃用：]
从 v4.2.0 起废弃，请改用 [SetDualStreamModeEx](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengineex_setdualstreammodeex)。
:::

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

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

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

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

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

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

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

是否开启双流模式：

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

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

视频小流的配置。详见 [FSimulcastStreamConfig](/zh-CN/api-reference/rtc/unreal-blueprint/class-simulcaststreamconfig)。

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

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

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

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

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

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

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

<a id="api_irtcengine_muteallremoteaudiostreams"></a>

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

## MuteAllRemoteAudioStreams [#muteallremoteaudiostreams]

取消或恢复订阅所有远端用户的音频流。

<a id="api_irtcengine_muteallremoteaudiostreams__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteAllRemoteAudioStreams(bool mute);
```

<a id="api_irtcengine_muteallremoteaudiostreams__detailed_desc"></a>

<a id="api_irtcengine_muteallremoteaudiostreams__desc"></a>

成功调用该方法后，本地用户会取消或恢复订阅所有远端用户的音频流，包括在调用该方法后加入频道的用户的音频流。

<a id="api_irtcengine_muteallremoteaudiostreams__note"></a>

:::caution
注意：

SDK 默认在加入频道时订阅所有远端用户的音频流，如果要修改此行为，可以在调用 [JoinChannelWithOptions](/zh-CN/api-reference/rtc/unreal-blueprint/channel#api_irtcengine_joinchannel2) 加入频道时设置 autoSubscribeAudio 为 `false`，即可在加入频道时取消订阅所有用户的音频流。
:::

<a id="api_irtcengine_muteallremoteaudiostreams__timing"></a>

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

该方法需要在加入频道后调用。

<a id="api_irtcengine_muteallremoteaudiostreams__restriction"></a>

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

如果在调用该方法之后又调用了 [EnableAudio](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#api_irtcengine_enableaudio) 或 [DisableAudio](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#api_irtcengine_disableaudio)，则后调用的方法会生效。

<a id="api_irtcengine_muteallremoteaudiostreams__parameters"></a>

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

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

是否取消订阅所有远端用户的音频流：

- `true`: 取消订阅所有远端用户的音频流。
- `false`:（默认）订阅所有远端用户的音频流。

</Parameter>
</ParameterList>

<a id="api_irtcengine_muteallremoteaudiostreams__return_values"></a>

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

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

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

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

<a id="api_irtcengineex_muteallremoteaudiostreamsex"></a>

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

## MuteAllRemoteAudioStreamsEx [#muteallremoteaudiostreamsex]

取消或恢复订阅所有远端用户的音频流。

<a id="api_irtcengineex_muteallremoteaudiostreamsex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteAllRemoteAudioStreamsEx(bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_muteallremoteaudiostreamsex__detailed_desc"></a>

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

<a id="api_irtcengineex_muteallremoteaudiostreamsex__desc"></a>

成功调用该方法后，本地用户会取消或恢复订阅远端用户的音频流，包括在调用该方法后加入频道的用户的音频流。

<a id="api_irtcengineex_muteallremoteaudiostreamsex__note"></a>

:::caution
注意：

- 该方法需要在加入频道后调用。
- 如果需要在加入频道前设置默认不订阅远端用户音频流，可以在调用 [JoinChannelWithOptions](/zh-CN/api-reference/rtc/unreal-blueprint/channel#api_irtcengine_joinchannel2) 加入频道时设置 autoSubscribeAudio 为 `false`。
:::

<a id="api_irtcengineex_muteallremoteaudiostreamsex__parameters"></a>

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

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

是否取消订阅所有远端用户的音频流：

- `true`: 取消订阅所有远端用户的音频流。
- `false`:（默认）订阅所有远端用户的音频流。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_muteallremoteaudiostreamsex__return_values"></a>

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

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

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

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

<a id="api_irtcengine_muteallremotevideostreams"></a>

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

## MuteAllRemoteVideoStreams [#muteallremotevideostreams]

取消或恢复订阅所有远端用户的视频流。

<a id="api_irtcengine_muteallremotevideostreams__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteAllRemoteVideoStreams(bool mute);
```

<a id="api_irtcengine_muteallremotevideostreams__detailed_desc"></a>

<a id="api_irtcengine_muteallremotevideostreams__desc"></a>

成功调用该方法后，本地用户会取消或恢复订阅所有远端用户的视频流，包括在调用该方法后加入频道的用户的视频流。

<a id="api_irtcengine_muteallremotevideostreams__note"></a>

:::caution
注意：

SDK 默认在加入频道时订阅所有远端用户的视频流，如果要修改此行为，可以在调用 [JoinChannelWithOptions](/zh-CN/api-reference/rtc/unreal-blueprint/channel#api_irtcengine_joinchannel2) 加入频道时设置 autoSubscribeVideo 为 `false`，即可在加入频道时取消订阅所有用户的视频流。
:::

<a id="api_irtcengine_muteallremotevideostreams__timing"></a>

### 调用时机 [#调用时机-1]

该方法需要在加入频道后调用。

<a id="api_irtcengine_muteallremotevideostreams__restriction"></a>

### 调用限制 [#调用限制-1]

如果在调用该方法之后又调用了 [EnableVideo](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#api_irtcengine_enablevideo) 或 [DisableVideo](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#api_irtcengine_disablevideo)，则后调用的方法会生效。

<a id="api_irtcengine_muteallremotevideostreams__parameters"></a>

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

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

是否取消订阅所有远端用户的视频流。

- `true`: 取消订阅所有用户的视频流。
- `false`:（默认）订阅所有用户的视频流。

</Parameter>
</ParameterList>

<a id="api_irtcengine_muteallremotevideostreams__return_values"></a>

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

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

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

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

<a id="api_irtcengineex_muteallremotevideostreamsex"></a>

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

## MuteAllRemoteVideoStreamsEx [#muteallremotevideostreamsex]

取消或恢复订阅所有远端用户的视频流。

<a id="api_irtcengineex_muteallremotevideostreamsex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteAllRemoteVideoStreamsEx(bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_muteallremotevideostreamsex__detailed_desc"></a>

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

成功调用该方法后，本地用户会取消或恢复订阅所有远端用户的视频流，包括在调用该方法后加入频道的用户的视频流。

<a id="api_irtcengineex_muteallremotevideostreamsex__parameters"></a>

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

<ParameterList>
<a id="mute-3"></a>
<Parameter name="mute">

是否取消订阅所有远端用户的视频流。

- `true`: 取消订阅所有用户的视频流。
- `false`:（默认）订阅所有用户的视频流。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_muteallremotevideostreamsex__return_values"></a>

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

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

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

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

<a id="api_irtcengine_mutelocalaudiostream"></a>

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

## MuteLocalAudioStream [#mutelocalaudiostream]

取消或恢复发布本地音频流。

<a id="api_irtcengine_mutelocalaudiostream__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteLocalAudioStream(bool mute);
```

<a id="api_irtcengine_mutelocalaudiostream__detailed_desc"></a>

该方法用于控制是否发布本地采集的音频流。如果不发布本地采集的音频流，也不会禁用音频采集设备，所以不影响音频的采集状态。

<a id="api_irtcengine_mutelocalaudiostream__timing"></a>

### 调用时机 [#调用时机-2]

加入频道前后均可调用。

<a id="api_irtcengine_mutelocalaudiostream__restriction"></a>

### 调用限制 [#调用限制-2]

无。

<a id="api_irtcengine_mutelocalaudiostream__related"></a>

### 相关回调 [#相关回调]

成功调用该方法后，本地会触发 [OnAudioPublishStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#callback_irtcengineeventhandler_onaudiopublishstatechanged) 回调；远端会触发 [OnUserMuteAudio](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#callback_irtcengineeventhandler_onusermuteaudio) 回调和 [OnRemoteAudioStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#callback_irtcengineeventhandler_onremoteaudiostatechanged) 回调。

<a id="api_irtcengine_mutelocalaudiostream__parameters"></a>

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

<ParameterList>
<a id="mute-4"></a>
<Parameter name="mute">

是否取消发布本地音频流。

- `true`: 取消发布。
- `false`:（默认）发布。

</Parameter>
</ParameterList>

<a id="api_irtcengine_mutelocalaudiostream__return_values"></a>

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

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

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

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

<a id="api_irtcengineex_mutelocalaudiostreamex"></a>

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

## MuteLocalAudioStreamEx [#mutelocalaudiostreamex]

取消或恢复发布本地音频流。

<a id="api_irtcengineex_mutelocalaudiostreamex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteLocalAudioStreamEx(bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_mutelocalaudiostreamex__detailed_desc"></a>

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

:::caution
注意： 该方法不影响音频采集状态，因为没有禁用音频采集设备。
:::

成功调用该方法后，远端会触发 [OnUserMuteAudio](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#callback_irtcengineeventhandler_onusermuteaudio) 回调和 [OnRemoteAudioStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/audio/audio-basic#callback_irtcengineeventhandler_onremoteaudiostatechanged) 回调。

<a id="api_irtcengineex_mutelocalaudiostreamex__parameters"></a>

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

<ParameterList>
<a id="mute-5"></a>
<Parameter name="mute">

是否取消发布本地音频流。

- `true`: 取消发布。
- `false`:（默认）发布。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_mutelocalaudiostreamex__return_values"></a>

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

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

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

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

<a id="api_irtcengine_mutelocalvideostream"></a>

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

## MuteLocalVideoStream [#mutelocalvideostream]

取消或恢复发布本地视频流。

<a id="api_irtcengine_mutelocalvideostream__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteLocalVideoStream(bool mute);
```

<a id="api_irtcengine_mutelocalvideostream__detailed_desc"></a>

该方法用于控制是否发布本地采集的视频流。如果不发布本地采集的视频流，也不会禁用视频采集设备，所以不影响视频的采集状态。

相比于调用 [EnableLocalVideo](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#api_irtcengine_enablelocalvideo)(`false`) 关闭本地视频流采集、从而取消发布本地视频流的方法，该方法响应速度更快。

<a id="api_irtcengine_mutelocalvideostream__timing"></a>

### 调用时机 [#调用时机-3]

加入频道前后均可调用。

<a id="api_irtcengine_mutelocalvideostream__restriction"></a>

### 调用限制 [#调用限制-3]

无。

<a id="api_irtcengine_mutelocalvideostream__related"></a>

### 相关回调 [#相关回调-1]

成功调用该方法后，本地会触发 [OnVideoPublishStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#callback_irtcengineeventhandler_onvideopublishstatechanged) 回调；远端会触发 [OnUserMuteVideo](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#callback_irtcengineeventhandler_onusermutevideo) 回调和 [OnRemoteVideoStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#callback_irtcengineeventhandler_onremotevideostatechanged) 回调。

<a id="api_irtcengine_mutelocalvideostream__parameters"></a>

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

<ParameterList>
<a id="mute-6"></a>
<Parameter name="mute">

是否取消发送本地视频流。

- `true`: 取消发送本地视频流。
- `false`: （默认）发送本地视频流。

</Parameter>
</ParameterList>

<a id="api_irtcengine_mutelocalvideostream__return_values"></a>

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

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

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

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

<a id="api_irtcengineex_mutelocalvideostreamex"></a>

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

## MuteLocalVideoStreamEx [#mutelocalvideostreamex]

取消或恢复发布本地视频流。

<a id="api_irtcengineex_mutelocalvideostreamex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteLocalVideoStreamEx(bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_mutelocalvideostreamex__detailed_desc"></a>

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

成功调用该方法后，远端会触发 [OnUserMuteVideo](/zh-CN/api-reference/rtc/unreal-blueprint/video/video-basic#callback_irtcengineeventhandler_onusermutevideo) 回调。

:::caution
注意：

- 该方法不影响视频采集状态，没有禁用摄像头。
:::

<a id="api_irtcengineex_mutelocalvideostreamex__parameters"></a>

### 参数 [#参数-9]

<ParameterList>
<a id="mute-7"></a>
<Parameter name="mute">

是否取消发送本地视频流。

- `true`: 取消发送本地视频流。
- `false`: （默认）发送本地视频流。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_mutelocalvideostreamex__return_values"></a>

### 返回值 [#返回值-9]

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

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

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

<a id="api_irtcengine_muteremoteaudiostream"></a>

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

## MuteRemoteAudioStream [#muteremoteaudiostream]

取消或恢复订阅指定远端用户的音频流。

<a id="api_irtcengine_muteremoteaudiostream__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteRemoteAudioStream(int64 uid, bool mute);
```

<a id="api_irtcengine_muteremoteaudiostream__detailed_desc"></a>

<a id="api_irtcengine_muteremoteaudiostream__timing"></a>

### 调用时机 [#调用时机-4]

该方法需要在加入频道后调用。

<a id="api_irtcengine_muteremoteaudiostream__restriction"></a>

### 调用限制 [#调用限制-4]

无。

<a id="api_irtcengine_muteremoteaudiostream__related"></a>

### 相关回调 [#相关回调-2]

成功调用该方法后，本地会触发 [OnAudioSubscribeStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#callback_irtcengineeventhandler_onaudiosubscribestatechanged) 回调。

<a id="api_irtcengine_muteremoteaudiostream__parameters"></a>

### 参数 [#参数-10]

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

指定用户的用户 ID。

</Parameter>
<a id="mute-8"></a>
<Parameter name="mute">

是否取消订阅指定远端用户的音频流。

- `true`: 取消订阅指定用户的音频流。
- `false`:（默认）订阅指定用户的音频流。

</Parameter>
</ParameterList>

<a id="api_irtcengine_muteremoteaudiostream__return_values"></a>

### 返回值 [#返回值-10]

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

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

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

<a id="api_irtcengineex_muteremoteaudiostreamex"></a>

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

## MuteRemoteAudioStreamEx [#muteremoteaudiostreamex]

停止/恢复接收指定的音频流。

<a id="api_irtcengineex_muteremoteaudiostreamex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteRemoteAudioStreamEx(int64 uid, bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_muteremoteaudiostreamex__detailed_desc"></a>

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

该方法停止/恢复接收某一个指定远端用户的音频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。

<a id="api_irtcengineex_muteremoteaudiostreamex__parameters"></a>

### 参数 [#参数-11]

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

指定用户的 ID。

</Parameter>
<a id="mute-9"></a>
<Parameter name="mute">

是否停止接收指定音频流：

<a id="api_irtcengineex_muteremoteaudiostreamex__ul_pv3_2ft_3qb"></a>

- `true`: 停止接收指定音频流。
- `false`:（默认）继续接收指定音频流。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_muteremoteaudiostreamex__return_values"></a>

### 返回值 [#返回值-11]

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

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

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

<a id="api_irtcengine_muteremotevideostream"></a>

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

## MuteRemoteVideoStream [#muteremotevideostream]

取消或恢复订阅指定远端用户的视频流。

<a id="api_irtcengine_muteremotevideostream__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteRemoteVideoStream(int64 uid, bool mute);
```

<a id="api_irtcengine_muteremotevideostream__detailed_desc"></a>

<a id="api_irtcengine_muteremotevideostream__timing"></a>

### 调用时机 [#调用时机-5]

该方法需要在加入频道后调用。

<a id="api_irtcengine_muteremotevideostream__restriction"></a>

### 调用限制 [#调用限制-5]

无。

<a id="api_irtcengine_muteremotevideostream__related"></a>

### 相关回调 [#相关回调-3]

成功调用该方法后，本地会触发 [OnVideoSubscribeStateChanged](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#callback_irtcengineeventhandler_onvideosubscribestatechanged) 回调。

<a id="api_irtcengine_muteremotevideostream__parameters"></a>

### 参数 [#参数-12]

<ParameterList>
<a id="userid"></a>
<Parameter name="userId">

指定用户的用户 ID。

</Parameter>
<a id="mute-10"></a>
<Parameter name="mute">

是否取消订阅指定远端用户的视频流。

- `true`: 取消订阅指定用户的视频流。
- `false`: （默认）订阅指定用户的视频流。

</Parameter>
</ParameterList>

<a id="api_irtcengine_muteremotevideostream__return_values"></a>

### 返回值 [#返回值-12]

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

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

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

<a id="api_irtcengineex_muteremotevideostreamex"></a>

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

## MuteRemoteVideoStreamEx [#muteremotevideostreamex]

停止/恢复接收指定的视频流。

<a id="api_irtcengineex_muteremotevideostreamex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int MuteRemoteVideoStreamEx(int64 uid, bool mute, const FRtcConnection& connection);
```

<a id="api_irtcengineex_muteremotevideostreamex__detailed_desc"></a>

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

该方法停止/恢复接收某一个指定远端用户的视频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。

<a id="api_irtcengineex_muteremotevideostreamex__parameters"></a>

### 参数 [#参数-13]

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

远端用户的 ID。

</Parameter>
<a id="mute-11"></a>
<Parameter name="mute">

是否停止接收某个远端用户的视频：

- `true`: 停止接收。
- `false`: （默认）恢复接收。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_muteremotevideostreamex__return_values"></a>

### 返回值 [#返回值-13]

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

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

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

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

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

## SetDualStreamMode [#setdualstreammode]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetDualStreamMode(FENUMWRAP_SIMULCAST_STREAM_MODE mode, const FSimulcastStreamConfig& streamConfig);
```

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

### 详情 [#详情-8]

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

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

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

:::note
注： 该方法和 [EnableDualStreamMode](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_enabledualstreammode3) 的区别与联系如下：

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

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

### 参数 [#参数-14]

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

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

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

视频小流的配置。详见 [FSimulcastStreamConfig](/zh-CN/api-reference/rtc/unreal-blueprint/class-simulcaststreamconfig)。

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

</Parameter>
</ParameterList>

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

### 返回值 [#返回值-14]

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

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

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

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

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

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

## SetDualStreamModeEx [#setdualstreammodeex]

在发送端设置双流模式。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetDualStreamModeEx(FENUMWRAP_SIMULCAST_STREAM_MODE mode, const FSimulcastStreamConfig& streamConfig, const FRtcConnection& connection);
```

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

### 详情 [#详情-9]

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

SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即发送端不主动发送小流，**主播身份**的接收端可以调用 [SetRemoteVideoStreamTypeEx](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#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/unreal-blueprint/publishnsubscribe#api_irtcengineex_enabledualstreammodeex) 的区别与联系如下：

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

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

### 参数 [#参数-15]

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

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

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

视频小流的配置。详见 [FSimulcastStreamConfig](/zh-CN/api-reference/rtc/unreal-blueprint/class-simulcaststreamconfig)。

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

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

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

### 返回值 [#返回值-15]

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

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

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

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

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

## SetRemoteDefaultVideoStreamType [#setremotedefaultvideostreamtype]

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

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetRemoteDefaultVideoStreamType(EVIDEO_STREAM_TYPE streamType);
```

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

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

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

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

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

### 调用时机 [#调用时机-6]

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

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

### 调用限制 [#调用限制-6]

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

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

### 参数 [#参数-16]

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

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

</Parameter>
</ParameterList>

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

### 返回值 [#返回值-16]

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

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

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

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

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

## SetRemoteVideoStreamType [#setremotevideostreamtype]

设置订阅的视频流类型。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetRemoteVideoStreamType(int64 uid, EVIDEO_STREAM_TYPE streamType);
```

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

### 详情 [#详情-10]

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

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

- SDK 默认在发送端开启小流自适应模式 (AUTO_SIMULCAST_STREAM)，即：发送端仅发送大流，仅**主播身份**的接收端可以调用该方法发起小流申请，发送端收到申请后开始自动发送小流，此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 SetDualStreamMode 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效。
- 当发送端调用 SetDualStreamMode 并将 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/unreal-blueprint/publishnsubscribe#api_irtcengine_setremotedefaultvideostreamtype)，则 SDK 以该方法中的设置为准。
:::

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

### 参数 [#参数-17]

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

用户 ID。

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

视频流类型: [EVIDEO_STREAM_TYPE](/zh-CN/api-reference/rtc/unreal-blueprint/enum-videostreamtype)。

</Parameter>
</ParameterList>

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

### 返回值 [#返回值-17]

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

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

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

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

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

## SetRemoteVideoStreamTypeEx [#setremotevideostreamtypeex]

设置订阅的视频流类型。

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

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetRemoteVideoStreamTypeEx(int64 uid, EVIDEO_STREAM_TYPE streamType, const FRtcConnection& connection);
```

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

### 详情 [#详情-11]

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

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

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

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

:::caution
注意：

- 如果发送端已调用 [SetDualStreamModeEx](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengineex_setdualstreammodeex) 并将 mode 设置为 DISABLE_SIMULCAST_STREAM（始终不发送小流），则调用该方法不生效，你需要在发送端重新调用 SetDualStreamModeEx 修改设置。
- **观众角色**的接收端调用该方法不生效。
:::

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

### 参数 [#参数-18]

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

用户 ID。

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

视频流类型: [EVIDEO_STREAM_TYPE](/zh-CN/api-reference/rtc/unreal-blueprint/enum-videostreamtype)。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

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

### 返回值 [#返回值-18]

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

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

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

<a id="api_irtcengine_setsubscribeaudioallowlist"></a>

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

## SetSubscribeAudioAllowlist [#setsubscribeaudioallowlist]

设置音频订阅白名单。

<a id="api_irtcengine_setsubscribeaudioallowlist__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeAudioAllowlist(TArray<int64> uidList, int uidNumber);
```

<a id="api_irtcengine_setsubscribeaudioallowlist__detailed_desc"></a>

### 详情 [#详情-12]

你可以调用该方法指定想要订阅的音频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 音频订阅白名单不受 [MuteRemoteAudioStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremoteaudiostream)、[MuteAllRemoteAudioStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremoteaudiostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeAudio 的影响。
- 设置订阅白名单后，如果离开当前频道后再重新加入频道，白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengine_setsubscribeaudioallowlist__parameters"></a>

### 参数 [#参数-19]

<ParameterList>
<a id="uidlist"></a>
<Parameter name="uidList">

音频订阅白名单的用户 ID 列表。

如果你想指定订阅某一发流用户的音频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除，需要重新调用 [SetSubscribeAudioAllowlist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribeaudioallowlist) 方法更新音频订阅白名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber"></a>
<Parameter name="uidNumber">

白名单用户 ID 列表中的用户数量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setsubscribeaudioallowlist__return_values"></a>

### 返回值 [#返回值-19]

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

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

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

<a id="api_irtcengineex_setsubscribeaudioallowlistex"></a>

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

## SetSubscribeAudioAllowlistEx [#setsubscribeaudioallowlistex]

设置音频订阅白名单。

<a id="api_irtcengineex_setsubscribeaudioallowlistex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeAudioAllowlistEx(TArray<int64> uidList, int uidNumber, const FRtcConnection& connection);
```

<a id="api_irtcengineex_setsubscribeaudioallowlistex__detailed_desc"></a>

### 详情 [#详情-13]

你可以调用该方法指定想要订阅的音频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 音频订阅白名单不受 [MuteRemoteAudioStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremoteaudiostream)、[MuteAllRemoteAudioStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremoteaudiostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeAudio 的影响。
- 设置订阅白名单后，如果离开当前频道后再重新加入频道，白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengineex_setsubscribeaudioallowlistex__parameters"></a>

### 参数 [#参数-20]

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

音频订阅白名单的用户 ID 列表。

如果你想指定订阅某一发流用户的音频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除，需要重新调用 [SetSubscribeAudioAllowlist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribeaudioallowlist) 方法更新音频订阅白名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-1"></a>
<Parameter name="uidNumber">

白名单用户 ID 列表中的用户数量。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setsubscribeaudioallowlistex__return_values"></a>

### 返回值 [#返回值-20]

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

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

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

<a id="api_irtcengine_setsubscribeaudioblocklist"></a>

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

## SetSubscribeAudioBlocklist [#setsubscribeaudioblocklist]

设置音频订阅黑名单。

<a id="api_irtcengine_setsubscribeaudioblocklist__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeAudioBlocklist(TArray<int64> uidList, int uidNumber);
```

<a id="api_irtcengine_setsubscribeaudioblocklist__detailed_desc"></a>

### 详情 [#详情-14]

你可以调用该方法指定不订阅的音频流。

<a id="api_irtcengine_setsubscribeaudioblocklist__note"></a>

:::caution
注意：

- 该方法在加入频道前后均可调用。
- 黑名单设置实时生效。将已订阅用户加入黑名单后，该用户的音频流也会停止订阅。
- 音频订阅黑名单不受 [MuteRemoteAudioStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremoteaudiostream)、[MuteAllRemoteAudioStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremoteaudiostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeAudio 影响。
- 设置订阅黑名单后，如果离开当前频道后再重新加入频道，黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengine_setsubscribeaudioblocklist__parameters"></a>

### 参数 [#参数-21]

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

订阅黑名单的用户 ID 列表。

如果你想指定不订阅某一发流用户的音频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除，需要重新调用 [SetSubscribeAudioBlocklist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribeaudioblocklist) 方法更新订阅黑名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-2"></a>
<Parameter name="uidNumber">

黑名单用户 ID 列表中的用户数量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setsubscribeaudioblocklist__return_values"></a>

### 返回值 [#返回值-21]

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

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

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

<a id="api_irtcengineex_setsubscribeaudioblocklistex"></a>

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

## SetSubscribeAudioBlocklistEx [#setsubscribeaudioblocklistex]

设置音频订阅黑名单。

<a id="api_irtcengineex_setsubscribeaudioblocklistex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeAudioBlocklistEx(TArray<int64> uidList, int uidNumber, const FRtcConnection& connection);
```

<a id="api_irtcengineex_setsubscribeaudioblocklistex__detailed_desc"></a>

### 详情 [#详情-15]

你可以调用该方法指定不订阅的音频流。

<a id="api_irtcengineex_setsubscribeaudioblocklistex__d108e49"></a>

:::caution
注意：

- 该方法在加入频道前后均可调用。
- 黑名单设置实时生效。将已订阅用户加入黑名单后，该用户的音频流也会停止订阅。
- 音频订阅黑名单不受 [MuteRemoteAudioStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremoteaudiostream)、[MuteAllRemoteAudioStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremoteaudiostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeAudio 影响。
- 设置订阅黑名单后，如果离开当前频道后再重新加入频道，黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengineex_setsubscribeaudioblocklistex__parameters"></a>

### 参数 [#参数-22]

<ParameterList>
<a id="uidlist-3"></a>
<Parameter name="uidList">

订阅黑名单的用户 ID 列表。

如果你想指定不订阅某一发流用户的音频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除，需要重新调用 [SetSubscribeAudioBlocklist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribeaudioblocklist) 方法更新订阅黑名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-3"></a>
<Parameter name="uidNumber">

黑名单用户 ID 列表中的用户数量。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setsubscribeaudioblocklistex__return_values"></a>

### 返回值 [#返回值-22]

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

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

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

<a id="api_irtcengine_setsubscribevideoallowlist"></a>

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

## SetSubscribeVideoAllowlist [#setsubscribevideoallowlist]

设置视频订阅白名单。

<a id="api_irtcengine_setsubscribevideoallowlist__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeVideoAllowlist(TArray<int64> uidList, int uidNumber);
```

<a id="api_irtcengine_setsubscribevideoallowlist__detailed_desc"></a>

### 详情 [#详情-16]

你可以调用该方法指定想要订阅的视频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 视频订阅白名单不受 [MuteRemoteVideoStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremotevideostream)、[MuteAllRemoteVideoStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremotevideostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeVideo 的影响。
- 设置订阅白名单后，如果离开当前频道后再重新加入频道，白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengine_setsubscribevideoallowlist__parameters"></a>

### 参数 [#参数-23]

<ParameterList>
<a id="uidlist-4"></a>
<Parameter name="uidList">

视频订阅白名单的用户 ID 列表。

如果你想指定仅订阅某一发流用户的视频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除，需要重新调用 [SetSubscribeVideoAllowlist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribevideoallowlist) 方法更新音频订阅白名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-4"></a>
<Parameter name="uidNumber">

白名单用户 ID 列表中的用户数量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setsubscribevideoallowlist__return_values"></a>

### 返回值 [#返回值-23]

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

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

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

<a id="api_irtcengineex_setsubscribevideoallowlistex"></a>

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

## SetSubscribeVideoAllowlistEx [#setsubscribevideoallowlistex]

设置视频订阅白名单。

<a id="api_irtcengineex_setsubscribevideoallowlistex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeVideoAllowlistEx(TArray<int64> uidList, int uidNumber, const FRtcConnection& connection);
```

<a id="api_irtcengineex_setsubscribevideoallowlistex__detailed_desc"></a>

### 详情 [#详情-17]

你可以调用该方法指定想要订阅的视频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 视频订阅白名单不受 [MuteRemoteVideoStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremotevideostream)、[MuteAllRemoteVideoStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremotevideostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeVideo 的影响。
- 设置订阅白名单后，如果离开当前频道后再重新加入频道，白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengineex_setsubscribevideoallowlistex__parameters"></a>

### 参数 [#参数-24]

<ParameterList>
<a id="uidlist-5"></a>
<Parameter name="uidList">

视频订阅白名单的用户 ID 列表。

如果你想指定仅订阅某一发流用户的视频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除，需要重新调用 [SetSubscribeVideoAllowlist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribevideoallowlist) 方法更新音频订阅白名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-5"></a>
<Parameter name="uidNumber">

白名单用户 ID 列表中的用户数量。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setsubscribevideoallowlistex__return_values"></a>

### 返回值 [#返回值-24]

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

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

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

<a id="api_irtcengine_setsubscribevideoblocklist"></a>

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

## SetSubscribeVideoBlocklist [#setsubscribevideoblocklist]

设置视频订阅黑名单。

<a id="api_irtcengine_setsubscribevideoblocklist__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeVideoBlocklist(TArray<int64> uidList, int uidNumber);
```

<a id="api_irtcengine_setsubscribevideoblocklist__detailed_desc"></a>

### 详情 [#详情-18]

你可以调用该方法指定不订阅的视频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 黑名单设置实时生效。将已订阅用户加入黑名单后，该用户的视频流也会停止订阅。
- 视频订阅黑名单不受 [MuteRemoteVideoStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremotevideostream)、[MuteAllRemoteVideoStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremotevideostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeVideo 的影响。
- 设置订阅黑名单后，如果离开当前频道后再重新加入频道，黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengine_setsubscribevideoblocklist__parameters"></a>

### 参数 [#参数-25]

<ParameterList>
<a id="uidlist-6"></a>
<Parameter name="uidList">

视频订阅黑名单的用户 ID 列表。

如果你想指定不订阅某一发流用户的视频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除，需要重新调用 [SetSubscribeVideoBlocklist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribevideoblocklist) 方法更新订阅黑名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-6"></a>
<Parameter name="uidNumber">

黑名单用户 ID 列表中的用户数量。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setsubscribevideoblocklist__return_values"></a>

### 返回值 [#返回值-25]

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

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

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

<a id="api_irtcengineex_setsubscribevideoblocklistex"></a>

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

## SetSubscribeVideoBlocklistEx [#setsubscribevideoblocklistex]

设置视频订阅黑名单。

<a id="api_irtcengineex_setsubscribevideoblocklistex__prototype"></a>

```cpp
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
	int SetSubscribeVideoBlocklistEx(TArray<int64> uidList, int uidNumber, const FRtcConnection& connection);
```

<a id="api_irtcengineex_setsubscribevideoblocklistex__detailed_desc"></a>

### 详情 [#详情-19]

你可以调用该方法指定不订阅的视频流。

:::note
注：

- 该方法在加入频道前后均可调用。
- 黑名单设置实时生效。将已订阅用户加入黑名单后，该用户的视频流也会停止订阅。
- 视频订阅黑名单不受 [MuteRemoteVideoStream](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteremotevideostream)、[MuteAllRemoteVideoStreams](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_muteallremotevideostreams) 以及 [FChannelMediaOptions](/zh-CN/api-reference/rtc/unreal-blueprint/class-channelmediaoptions) 中的 autoSubscribeVideo 的影响。
- 设置订阅黑名单后，如果离开当前频道后再重新加入频道，黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中，仅订阅黑名单生效。
:::

<a id="api_irtcengineex_setsubscribevideoblocklistex__parameters"></a>

### 参数 [#参数-26]

<ParameterList>
<a id="uidlist-7"></a>
<Parameter name="uidList">

视频订阅黑名单的用户 ID 列表。

如果你想指定不订阅某一发流用户的视频流，将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除，需要重新调用 [SetSubscribeVideoBlocklist](/zh-CN/api-reference/rtc/unreal-blueprint/publishnsubscribe#api_irtcengine_setsubscribevideoblocklist) 方法更新订阅黑名单的用户 ID 列表，使其不包含你想移除的用户的 uid。

</Parameter>
<a id="uidnumber-7"></a>
<Parameter name="uidNumber">

黑名单用户 ID 列表中的用户数量。

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

Connection 信息。详见 [FUABT_RtcConnection](/zh-CN/api-reference/rtc/unreal-blueprint/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_setsubscribevideoblocklistex__return_values"></a>

### 返回值 [#返回值-26]

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

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

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

<a id="callback_irtcengineeventhandler_onaudiopublishstatechanged"></a>

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

## OnAudioPublishStateChanged [#onaudiopublishstatechanged]

音频发布状态改变回调。

<a id="callback_irtcengineeventhandler_onaudiopublishstatechanged__prototype"></a>

```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnAudioPublishStateChanged(const FString& channel, ESTREAM_PUBLISH_STATE oldState, ESTREAM_PUBLISH_STATE newState, int elapseSinceLastState);
```

<a id="callback_irtcengineeventhandler_onaudiopublishstatechanged__parameters"></a>

### 参数 [#参数-27]

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

频道名。

</Parameter>
<a id="oldstate"></a>
<Parameter name="oldState">

之前的发布状态，详见 [ESTREAM_PUBLISH_STATE](/zh-CN/api-reference/rtc/unreal-blueprint/enum-streampublishstate)。

</Parameter>
<a id="newstate"></a>
<Parameter name="newState">

当前的发布状态，详见 ESTREAM_PUBLISH_STATE。

</Parameter>
<a id="elapsesincelaststate"></a>
<Parameter name="elapseSinceLastState">

两次状态变化时间间隔（毫秒）。

</Parameter>
</ParameterList>

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

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/unreal-blueprint/rtc-interface-class#class_irtcengineeventhandler)

<a id="callback_irtcengineeventhandler_onaudiosubscribestatechanged"></a>

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

## OnAudioSubscribeStateChanged [#onaudiosubscribestatechanged]

音频订阅状态发生改变回调。

<a id="callback_irtcengineeventhandler_onaudiosubscribestatechanged__prototype"></a>

```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnAudioSubscribeStateChanged(const FString& channel, int64 uid, ESTREAM_SUBSCRIBE_STATE oldState, ESTREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState);
```

<a id="callback_irtcengineeventhandler_onaudiosubscribestatechanged__parameters"></a>

### 参数 [#参数-28]

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

频道名。

</Parameter>
<a id="uid-5"></a>
<Parameter name="uid">

远端用户的 ID。

</Parameter>
<a id="oldstate-1"></a>
<Parameter name="oldState">

之前的订阅状态，详见 [ESTREAM_SUBSCRIBE_STATE](/zh-CN/api-reference/rtc/unreal-blueprint/enum-streamsubscribestate)。

</Parameter>
<a id="newstate-1"></a>
<Parameter name="newState">

当前的订阅状态，详见 ESTREAM_SUBSCRIBE_STATE。

</Parameter>
<a id="elapsesincelaststate-1"></a>
<Parameter name="elapseSinceLastState">

两次状态变化时间间隔（毫秒）。

</Parameter>
</ParameterList>

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

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/unreal-blueprint/rtc-interface-class#class_irtcengineeventhandler)

<a id="callback_irtcengineeventhandler_onvideosubscribestatechanged"></a>

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

## OnVideoSubscribeStateChanged [#onvideosubscribestatechanged]

视频订阅状态发生改变回调。

<a id="callback_irtcengineeventhandler_onvideosubscribestatechanged__prototype"></a>

```cpp
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
	void OnVideoSubscribeStateChanged(const FString& channel, int64 uid, ESTREAM_SUBSCRIBE_STATE oldState, ESTREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState);
```

<a id="callback_irtcengineeventhandler_onvideosubscribestatechanged__detailed_desc"></a>

<a id="callback_irtcengineeventhandler_onvideosubscribestatechanged__parameters"></a>

### 参数 [#参数-29]

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

频道名。

</Parameter>
<a id="uid-6"></a>
<Parameter name="uid">

远端用户的 ID。

</Parameter>
<a id="oldstate-2"></a>
<Parameter name="oldState">

之前的订阅状态，详见 [ESTREAM_SUBSCRIBE_STATE](/zh-CN/api-reference/rtc/unreal-blueprint/enum-streamsubscribestate)。

</Parameter>
<a id="newstate-2"></a>
<Parameter name="newState">

当前的订阅状态，详见 ESTREAM_SUBSCRIBE_STATE。

</Parameter>
<a id="elapsesincelaststate-2"></a>
<Parameter name="elapseSinceLastState">

两次状态变化时间间隔（毫秒）。

</Parameter>
</ParameterList>

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

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/unreal-blueprint/rtc-interface-class#class_irtcengineeventhandler)
