跨频道媒体流转发
- C++
更新时间不可用
pauseAllChannelMediaRelay
暂停向所有目标频道的跨频道媒体流转发。
virtual int pauseAllChannelMediaRelay() = 0;你可以在开始跨频道媒体流转发后调用该方法,以暂停向所有目标频道转发媒体流。如需恢复转发,请调用 resumeAllChannelMediaRelay 方法。
注: 请在调用 startOrUpdateChannelMediaRelay 方法之后调用此方法。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
所属接口类
pauseAllChannelMediaRelayEx
暂停向所有目标频道的跨频道媒体流转发。
virtual int pauseAllChannelMediaRelayEx(const RtcConnection& connection) = 0;你可以在开始跨频道媒体流转发后调用该方法,暂停向所有目标频道转发媒体流。如需恢复转发,请调用 resumeAllChannelMediaRelay 方法。
注: 请在调用 startOrUpdateChannelMediaRelayEx 方法后调用该方法。
适用场景
该方法适用于多频道场景。
参数
| 参数名 | 描述 |
|---|---|
connection | 连接信息。详见 RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
所属接口类
resumeAllChannelMediaRelay
恢复向所有目标频道的跨频道媒体流转发。
virtual int resumeAllChannelMediaRelay() = 0;注: 请在调用 pauseAllChannelMediaRelay 方法后再调用该方法。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
所属接口类
resumeAllChannelMediaRelayEx
恢复向所有目标频道的跨频道媒体流转发。
virtual int resumeAllChannelMediaRelayEx(const RtcConnection& connection) = 0;注: 请在调用 pauseAllChannelMediaRelayEx 方法后调用该方法。
适用场景
该方法适用于多频道场景。
参数
| 参数名 | 描述 |
|---|---|
connection | 连接信息。详见 RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。
所属接口类
startOrUpdateChannelMediaRelay
开始跨频道媒体流转发,或更新媒体流转发的目标频道。
virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;自从
自 v4.2.0 版本新增。
首次成功调用该方法会将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或停止转发到某个频道,可再次调用该方法更新目标频道。最多支持转发到六个目标频道。
注:
- 请在加入频道后调用该方法。
- 该方法仅在你是直播频道中的主播时有效。
- 跨频道媒体流转发功能需联系技术支持启用。
- 该方法不支持字符串用户 User Account。
相关回调
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调,报告媒体流转发的状态。 常见状态如下:
- 如果 onChannelMediaRelayStateChanged 回调返回
RELAY_STATE_RUNNING(2)和RELAY_OK(0),表示 SDK 成功开始将媒体流从源频道转发到目标频道。 - 如果 onChannelMediaRelayStateChanged 回调返回
RELAY_STATE_FAILURE(3),表示媒体流转发过程中发生异常。
参数
| 参数名 | 描述 |
|---|---|
configuration | 媒体流转发的配置,详见 ChannelMediaRelayConfiguration。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -1:发生通用错误。
- -2:参数无效。
- -8:内部状态错误,可能是因为用户不是主播。
所属接口类
startOrUpdateChannelMediaRelayEx
开始或更新跨频道媒体流转发。
virtual int startOrUpdateChannelMediaRelayEx(const ChannelMediaRelayConfiguration& configuration, const RtcConnection& connection) = 0;自从
自 v4.2.0 版本新增。
首次成功调用该方法会开始将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或退出当前的某个媒体流转发,可再次调用该方法以更新目标频道。该功能最多支持将媒体流转发到六个目标频道。调用该方法成功后,SDK 会触发 onChannelMediaRelayStateChanged 回调,报告媒体流转发的状态:
- 当回调返回
RELAY_STATE_RUNNING(2)和RELAY_OK(0)时,表示媒体流已开始从源频道转发到目标频道。 - 当回调返回
RELAY_STATE_FAILURE(3)时,表示媒体流转发过程中出现异常。
注:
- 请在加入频道后调用该方法。
- 该方法仅在你是直播频道中的主播时生效。
- 跨频道媒体流转发功能需联系技术支持启用。
- 该方法不支持字符串用户 User Account。
适用场景
该方法适用于多频道场景。
参数
| 参数名 | 描述 |
|---|---|
configuration | 媒体流转发的配置。详见 ChannelMediaRelayConfiguration。 |
connection | 连接信息。详见 RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -1:发生通用错误(无明确原因)。
- -2:参数无效。
- -8:内部状态错误,可能是因为用户不是主播。
所属接口类
stopChannelMediaRelay
停止跨频道媒体流转发。
virtual int stopChannelMediaRelay() = 0;调用该方法停止跨频道媒体流转发。一旦转发停止,主播会退出所有目标频道。
注: 如果方法调用失败,SDK 会触发 onChannelMediaRelayStateChanged 回调,并返回 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)状态码。你也可以调用 leaveChannel 方法离开频道,跨频道媒体流转发将自动停止。
相关回调
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调报告媒体流转发状态。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
所属接口类
stopChannelMediaRelayEx
停止跨频道媒体流转发。
virtual int stopChannelMediaRelayEx(const RtcConnection& connection) = 0;调用该方法可停止跨频道媒体流转发。一旦转发停止,主播会退出所有目标频道。
注: 如果方法调用失败,SDK 会触发 onChannelMediaRelayStateChanged 回调,并返回 RELAY_ERROR_SERVER_NO_RESPONSE(2)或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)状态码。你也可以调用 leaveChannel 方法离开频道,跨频道媒体流转发会自动停止。
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调。如果回调返回 RELAY_STATE_IDLE(0)和 RELAY_OK(0),表示主播成功停止转发。
参数
| 参数名 | 描述 |
|---|---|
connection | 连接信息。详见 RtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。
所属接口类
onChannelMediaRelayStateChanged
跨频道媒体流转发状态变化回调。
virtual void onChannelMediaRelayStateChanged(int state, int code)该回调返回当前跨频道媒体流转发的状态和错误码信息。
参数
| 参数名 | 描述 |
|---|---|
state | 状态码。详见 CHANNEL_MEDIA_RELAY_STATE。 |
code | 错误码。详见 CHANNEL_MEDIA_RELAY_ERROR。 |