跨频道媒体流转发
pauseAllChannelMediaRelay
暂停向所有目标频道转发媒体流。
public abstract int pauseAllChannelMediaRelay();
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 resumeAllChannelMediaRelay
方法。
注意: 该方法需要在调用 startOrUpdateChannelMediaRelay
开始跨频道媒体流转发后调用。
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
pauseAllChannelMediaRelayEx
暂停向所有目标频道转发媒体流。
public abstract int pauseAllChannelMediaRelayEx(RtcConnection connection);
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 resumeAllChannelMediaRelay
方法。
注意: 该方法需要在调用 startOrUpdateChannelMediaRelayEx
开始跨频道媒体流转发后调用。
参数
参数名 | 描述 |
---|---|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
resumeAllChannelMediaRelay
恢复向所有目标频道转发媒体流。
public abstract int resumeAllChannelMediaRelay();
调用 pauseAllChannelMediaRelay
方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
注意: 该方法需要在 pauseAllChannelMediaRelay
后调用。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
resumeAllChannelMediaRelayEx
恢复向所有目标频道转发媒体流。
public abstract int resumeAllChannelMediaRelayEx(RtcConnection connection);
调用 pauseAllChannelMediaRelayEx
方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
注意: 该方法需要在 pauseAllChannelMediaRelayEx
后调用。
参数
参数名 | 描述 |
---|---|
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
startChannelMediaRelay
开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。
public abstract int startChannelMediaRelay(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration);
该方法已废弃。请改用 startOrUpdateChannelMediaRelay
。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
和 onChannelMediaRelayEvent
回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
-
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_RUNNING
(2) 和RELAY_OK
(0),且onChannelMediaRelayEvent
回调报告RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL
(4), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。 -
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_FAILURE
(3), 则表示跨频道媒体流转发出现异常。
注意:
-
请在成功加入频道后调用该方法。
-
在直播场景中,只有角色为主播的用户才能调用该方法。
-
成功调用该方法后,若你想再次调用该方法,必须先调用
stopChannelMediaRelay
方法退出当前的转发状态。 -
跨频道媒体流转发功能需要
联系技术支持
开通。 -
该功能不支持 String 型 UID。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。
-
-1: 一般性的错误(未明确归类)。
-
-2: 参数无效。
-
-7: 方法调用被拒绝。可能因为 SDK 未初始化成功,或用户角色不是主播。
-
-8:内部状态错误。可能因为用户角色不是主播。
-
startChannelMediaRelayEx
开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。
public abstract int startChannelMediaRelayEx(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration, RtcConnection connection);
该方法已废弃。请改用 startOrUpdateChannelMediaRelayEx
。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
和 onChannelMediaRelayEvent
回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
-
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_RUNNING
(2) 和RELAY_OK
(0),且onChannelMediaRelayEvent
回调报告RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL
(4), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。 -
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_FAILURE
(3), 则表示跨频道媒体流转发出现异常。
注意:
-
请在成功加入频道后调用该方法。
-
在直播场景中,只有角色为主播的用户才能调用该方法。
-
成功调用该方法后,若你想再次调用该方法,必须先调用
stopChannelMediaRelayEx
方法退出当前的转发状态。 -
跨频道媒体流转发功能需要
联系技术支持
开通。 -
该功能不支持 String 型 UID。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。
-
-1: 一般性的错误(未明确归类)。
-
-2: 参数无效。
-
-7: 方法调用被拒绝。可能因为 SDK 未初始化成功,或用户角色不是主播。
-
-8:内部状态错误。可能因为用户角色不是主播。
-
startOrUpdateChannelMediaRelay
开始或更新跨频道媒体流转发。
public abstract int startOrUpdateChannelMediaRelay(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration);
v4.2.0
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
回调,报告当前的跨频道媒体流转发状态。常见状态如下:
-
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_RUNNING
(2) 和RELAY_OK
(0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。 -
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_FAILURE
(3), 则表示跨频道媒体流转发出现异常。
注意:
-
请在成功加入频道后调用该方法。
-
在直播场景中,只有角色为主播的用户才能调用该方法。
-
跨频道媒体流转发功能需要
联系技术支持
开通。 -
该功能不支持 String 型 UID。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。
-
-1: 一般性的错误(未明确归类)。
-
-2: 参数无效。
-
-7: 方法调用被拒绝。可能因为 SDK 未初始化成功,或用户角色不是主播。
-
-8:内部状态错误。可能因为用户角色不是主播。
-
startOrUpdateChannelMediaRelayEx
开始或更新跨频道媒体流转发。
public abstract int startOrUpdateChannelMediaRelayEx(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration, RtcConnection connection);
v4.2.0
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
回调,报告当前的跨频道媒体流转发状态。常见状态如下:
-
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_RUNNING
(2) 和RELAY_OK
(0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。 -
如果
onChannelMediaRelayStateChanged
回调报告RELAY_STATE_FAILURE
(3), 则表示跨频道媒体流转发出现异常。
注意:
-
请在成功加入频道后调用该方法。
-
在直播场景中,只有角色为主播的用户才能调用该方法。
-
跨频道媒体流转发功能需要
联系技术支持
开通。 -
该功能不支持 String 型 UID。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。
-
-1: 一般性的错误(未明确归类)。
-
-2: 参数无效。
-
-7: 方法调用被拒绝。可能因为 SDK 未初始化成功,或用户角色不是主播。
-
-8:内部状态错误。可能因为用户角色不是主播。
-
stopChannelMediaRelay
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
public abstract 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)。你可以调用 leaveChannel [2/2]
方法离开频道,跨频道媒体流转发会自动停止。
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
stopChannelMediaRelayEx
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
public abstract int stopChannelMediaRelayEx(RtcConnection connection);
成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged
回调。如果报告 RELAY_STATE_IDLE
(0) 和 RELAY_OK
(0),则表示已停止转发媒体流。
注意:
如果该方法调用不成功,SDK 会触发 onChannelMediaRelayStateChanged
回调,并报告状态码 RELAY_ERROR_SERVER_NO_RESPONSE
(2) 或 RELAY_ERROR_SERVER_CONNECTION_LOST
(8)。你可以调用 leaveChannel [2/2]
方法离开频道,跨频道媒体流转发会自动停止。
参数
参数名 | 描述 |
---|---|
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
updateChannelMediaRelay
更新媒体流转发的频道。
public abstract int updateChannelMediaRelay(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration);
该方法已废弃。请改用 startOrUpdateChannelMediaRelay
。
成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道,或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent
回调, 并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL
(7)。
注意: 请在成功调用 startChannelMediaRelay
方法并收到 onChannelMediaRelayStateChanged
(RELAY_STATE_RUNNING, RELAY_OK)
后调用该方法;否则,方法调用会失败。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
updateChannelMediaRelayEx
更新媒体流转发的频道。
public abstract int updateChannelMediaRelayEx(
ChannelMediaRelayConfiguration channelMediaRelayConfiguration, RtcConnection connection);
该方法已废弃。请改用 startOrUpdateChannelMediaRelayEx
。
成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道,或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 onChannelMediaRelayEvent
回调, 并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL
(7)。
注意: 请在成功调用 startChannelMediaRelayEx
方法并收到 onChannelMediaRelayStateChanged
(RELAY_STATE_RUNNING, RELAY_OK)
后调用该方法;否则,方法调用会失败。
参数
参数名 | 描述 |
---|---|
channelMediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 |
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
onChannelMediaRelayEvent
跨频道媒体流转发事件回调。
public void onChannelMediaRelayEvent(int code) {}
该回调已废弃。
参数
参数名 | 描述 |
---|---|
code | 跨频道媒体流转发事件码:
|
onChannelMediaRelayStateChanged
跨频道媒体流转发状态发生改变回调。
public void onChannelMediaRelayStateChanged(int state, int code) {}
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
参数
参数名 | 描述 |
---|---|
state | 跨频道媒体流转发状态:
|
code | 跨频道媒体流转发出错的错误码:
|