跨频道媒体流转发
- Unreal Blueprint
更新时间不可用
PauseAllChannelMediaRelay
暂停向所有目标频道转发媒体流。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int PauseAllChannelMediaRelay();详情
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 ResumeAllChannelMediaRelay 方法。
注意: 该方法需要在调用 StartOrUpdateChannelMediaRelay 开始跨频道媒体流转发后调用。
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
所属接口类
PauseAllChannelMediaRelayEx
暂停向所有目标频道转发媒体流。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int PauseAllChannelMediaRelayEx(const FRtcConnection& connection);详情
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 ResumeAllChannelMediaRelay 方法。
注意: 该方法需要在调用 StartOrUpdateChannelMediaRelayEx 开始跨频道媒体流转发后调用。
参数
| 参数名 | 描述 |
|---|---|
connection | Connection 信息。详见 FUABT_RtcConnection。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
所属接口类
ResumeAllChannelMediaRelay
恢复向所有目标频道转发媒体流。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int ResumeAllChannelMediaRelay();详情
调用 PauseAllChannelMediaRelay 方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
注意: 该方法需要在 PauseAllChannelMediaRelay 后调用。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有暂停的跨频道媒体流转发。
所属接口类
ResumeAllChannelMediaRelayEx
恢复向所有目标频道转发媒体流。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int ResumeAllChannelMediaRelayEx(const FRtcConnection& connection);详情
调用 PauseAllChannelMediaRelayEx 方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
注意: 该方法需要在 PauseAllChannelMediaRelayEx 后调用。
参数
| 参数名 | 描述 |
|---|---|
connection | Connection 信息。详见 FUABT_RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有暂停的跨频道媒体流转发。
所属接口类
StartOrUpdateChannelMediaRelay
开始或更新跨频道媒体流转发。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int StartOrUpdateChannelMediaRelay(const FChannelMediaRelayConfiguration& configuration);详情
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChanged 回调,报告当前的跨频道媒体流转发状态。常见状态如下:
- 如果 OnChannelMediaRelayStateChanged 回调报告 RELAY_STATE_RUNNING (2) 和 RELAY_OK (0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。
- 如果 OnChannelMediaRelayStateChanged 回调报告 RELAY_STATE_FAILURE (3), 则表示跨频道媒体流转发出现异常。
注意:
- 请在成功加入频道后调用该方法。
- 在直播场景中,只有角色为主播的用户才能调用该方法。
- 跨频道媒体流转发功能需要联系技术支持开通。
- 该功能不支持 String 型 UID。
参数
| 参数名 | 描述 |
|---|---|
configuration | 跨频道媒体流转发参数配置。详见 FChannelMediaRelayConfiguration。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -1: 一般性的错误(未明确归类)。
- -2: 参数无效。
- -8:内部状态错误。可能因为用户角色不是主播。
所属接口类
StartOrUpdateChannelMediaRelayEx
开始或更新跨频道媒体流转发。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int StartOrUpdateChannelMediaRelayEx(const FChannelMediaRelayConfiguration& configuration, const FRtcConnection& connection);详情
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChanged 回调,报告当前的跨频道媒体流转发状态。常见状态如下:
- 如果 OnChannelMediaRelayStateChanged 回调报告 RELAY_STATE_RUNNING (2) 和 RELAY_OK (0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。
- 如果 OnChannelMediaRelayStateChanged 回调报告 RELAY_STATE_FAILURE (3), 则表示跨频道媒体流转发出现异常。
注意:
- 请在成功加入频道后调用该方法。
- 在直播场景中,只有角色为主播的用户才能调用该方法。
- 跨频道媒体流转发功能需要联系技术支持开通。
- 该功能不支持 String 型 UID。
参数
| 参数名 | 描述 |
|---|---|
configuration | 跨频道媒体流转发参数配置。详见 FChannelMediaRelayConfiguration。 |
connection | Connection 信息。详见 FUABT_RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -1: 一般性的错误(未明确归类)。
- -2: 参数无效。
- -8:内部状态错误。可能因为用户角色不是主播。
所属接口类
StopChannelMediaRelay
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int StopChannelMediaRelay();详情
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChanged 回调。如果报告 RELAY_STATE_IDLE (0) 和 RELAY_OK (0),则表示已停止转发媒体流。
注意: 如果该方法调用不成功,SDK 会触发 OnChannelMediaRelayStateChanged 回调,并报告状态码 RELAY_ERROR_SERVER_NO_RESPONSE (2) 或 RELAY_ERROR_SERVER_CONNECTION_LOST (8)。你可以调用 LeaveChannelWithOptions 方法离开频道,跨频道媒体流转发会自动停止。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
所属接口类
StopChannelMediaRelayEx
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine")
int StopChannelMediaRelayEx(const FRtcConnection& connection);详情
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChanged 回调。如果报告 RELAY_STATE_IDLE (0) 和 RELAY_OK (0),则表示已停止转发媒体流。
注意: 如果该方法调用不成功,SDK 会触发 OnChannelMediaRelayStateChanged 回调,并报告状态码 RELAY_ERROR_SERVER_NO_RESPONSE (2) 或 RELAY_ERROR_SERVER_CONNECTION_LOST (8)。你可以调用 LeaveChannelWithOptions 方法离开频道,跨频道媒体流转发会自动停止。
参数
| 参数名 | 描述 |
|---|---|
connection | Connection 信息。详见 FUABT_RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
所属接口类
OnChannelMediaRelayStateChanged
跨频道媒体流转发状态发生改变回调。
UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event")
void OnChannelMediaRelayStateChanged(int state, int code);详情
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
参数
| 参数名 | 描述 |
|---|---|
state | |
code | 跨频道媒体流转发出错的错误码:
|