跨频道媒体流转发
pauseAllChannelMediaRelay
暂停向所有目标频道转发媒体流。
- (int)pauseAllChannelMediaRelay;
详情
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 resumeAllChannelMediaRelay 方法。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
pauseAllChannelMediaRelayEx:
暂停向所有目标频道转发媒体流。
- (int)pauseAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(pauseAllChannelMediaRelayEx(_:));
详情
开始跨频道转发媒体流后,如果你需要暂停向所有频道转发媒体流,可以调用该方法;暂停后,如果要恢复跨频道媒体流转发,可以调用 resumeAllChannelMediaRelay 方法。
参数
- connection
- Connection 信息。详见 AgoraRtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
resumeAllChannelMediaRelay
恢复向所有目标频道转发媒体流。
- (int)resumeAllChannelMediaRelay;
详情
调用 pauseAllChannelMediaRelay 方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有暂停的跨频道媒体流转发。
resumeAllChannelMediaRelayEx:
恢复向所有目标频道转发媒体流。
- (int)resumeAllChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(resumeAllChannelMediaRelayEx(_:));
详情
调用 pauseAllChannelMediaRelayEx: 方法后,如果你需要恢复向所有目标频道转发媒体流,可以调用该方法。
参数
- connection
- Connection 信息。详见 AgoraRtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有暂停的跨频道媒体流转发。
startOrUpdateChannelMediaRelay:
开始或更新跨频道媒体流转发。
- (int)startOrUpdateChannelMediaRelay:(AgoraChannelMediaRelayConfiguration * _Nonnull)config NS_SWIFT_NAME(startOrUpdateChannelMediaRelay(_:));
详情
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
- 如果 rtcEngine:channelMediaRelayStateDidChange:error: 回调报告 AgoraChannelMediaRelayStateRunning (2) 和 AgoraChannelMediaRelayErrorNone (0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。
- 如果 rtcEngine:channelMediaRelayStateDidChange:error: 回调报告 AgoraChannelMediaRelayStateFailure (3), 则表示跨频道媒体流转发出现异常。
- 请在成功加入频道后调用该方法。
- 在直播场景中,只有角色为主播的用户才能调用该方法。
- 跨频道媒体流转发功能需要联系技术支持开通。
- 该功能不支持 String 型 UID。
参数
- config
- 跨频道媒体流转发参数配置。详见 AgoraChannelMediaRelayConfiguration。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -1: 一般性的错误(未明确归类)。
- -2: 参数无效。
- -8:内部状态错误。可能因为用户角色不是主播。
startOrUpdateChannelMediaRelayEx:connection:
开始或更新跨频道媒体流转发。
- (int)startOrUpdateChannelMediaRelayEx:(AgoraChannelMediaRelayConfiguration * _Nonnull)config connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startOrUpdateChannelMediaRelayEx(_:connection:));
详情
首次成功调用该方法将开始跨频道转发媒体流。如需将流转发到多个目标频道,或退出当前的转发频道,可以再次调用该方法添加或移除转发的目标频道。该功能最多支持将媒体流转发至 6 个目标频道。
- 如果 rtcEngine:channelMediaRelayStateDidChange:error: 回调报告 AgoraChannelMediaRelayStateRunning (2) 和 AgoraChannelMediaRelayErrorNone (0), 则表示 SDK 开始在源频道和目标频道之间转发媒体流。
- 如果 rtcEngine:channelMediaRelayStateDidChange:error: 回调报告 AgoraChannelMediaRelayStateFailure (3), 则表示跨频道媒体流转发出现异常。
- 请在成功加入频道后调用该方法。
- 在直播场景中,只有角色为主播的用户才能调用该方法。
- 跨频道媒体流转发功能需要联系技术支持开通。
- 该功能不支持 String 型 UID。
参数
- config
- 跨频道媒体流转发参数配置。详见 AgoraChannelMediaRelayConfiguration。
- connection
- Connection 信息。详见 AgoraRtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -1: 一般性的错误(未明确归类)。
- -2: 参数无效。
- -8:内部状态错误。可能因为用户角色不是主播。
stopChannelMediaRelay
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
- (int)stopChannelMediaRelay;
详情
成功调用该方法后,SDK 会触发 rtcEngine:channelMediaRelayStateDidChange:error: 回调。如果报告 AgoraChannelMediaRelayStateIdle (0) 和 AgoraChannelMediaRelayErrorNone (0),则表示已停止转发媒体流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
stopChannelMediaRelayEx:
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
- (int)stopChannelMediaRelayEx:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopChannelMediaRelayEx(_:));
详情
成功调用该方法后,SDK 会触发 rtcEngine:channelMediaRelayStateDidChange:error: 回调。如果报告 AgoraChannelMediaRelayStateIdle (0) 和 AgoraChannelMediaRelayErrorNone (0),则表示已停止转发媒体流。
参数
- connection
- Connection 信息。详见 AgoraRtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
- -5: 方法调用被拒绝。当前没有正在进行的跨频道媒体流转发。
rtcEngine:channelMediaRelayStateDidChange:error:
跨频道媒体流转发状态发生改变回调。
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine
channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state
error:(AgoraChannelMediaRelayError)error;
详情
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
参数
- engine
- AgoraRtcEngineKit 对象。
- state
跨频道媒体流转发状态。详见 AgoraChannelMediaRelayState。
- code
跨频道媒体流转发出错的错误码。详见 AgoraChannelMediaRelayError。