跨频道媒体流转发

  • C++

更新时间不可用

pauseAllChannelMediaRelay

暂停向所有目标频道的跨频道媒体流转发。

C++
virtual int pauseAllChannelMediaRelay() = 0;

你可以在开始跨频道媒体流转发后调用该方法,以暂停向所有目标频道转发媒体流。如需恢复转发,请调用 resumeAllChannelMediaRelay 方法。

注: 请在调用 startOrUpdateChannelMediaRelay 方法之后调用此方法。

返回值

  • 0:方法调用成功。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。

所属接口类

pauseAllChannelMediaRelayEx

暂停向所有目标频道的跨频道媒体流转发。

C++
virtual int pauseAllChannelMediaRelayEx(const RtcConnection& connection) = 0;

你可以在开始跨频道媒体流转发后调用该方法,暂停向所有目标频道转发媒体流。如需恢复转发,请调用 resumeAllChannelMediaRelay 方法。

注: 请在调用 startOrUpdateChannelMediaRelayEx 方法后调用该方法。

适用场景

该方法适用于多频道场景。

参数

参数名描述
connection

连接信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

    • -5:调用被拒绝,当前没有正在进行的跨频道媒体流转发。

所属接口类

resumeAllChannelMediaRelay

恢复向所有目标频道的跨频道媒体流转发。

C++
virtual int resumeAllChannelMediaRelay() = 0;

注: 请在调用 pauseAllChannelMediaRelay 方法后再调用该方法。

返回值

  • 0:方法调用成功。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。

所属接口类

resumeAllChannelMediaRelayEx

恢复向所有目标频道的跨频道媒体流转发。

C++
virtual int resumeAllChannelMediaRelayEx(const RtcConnection& connection) = 0;

注: 请在调用 pauseAllChannelMediaRelayEx 方法后调用该方法。

适用场景

该方法适用于多频道场景。

参数

参数名描述
connection

连接信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

    • -5:调用被拒绝,当前没有已暂停的跨频道媒体流转发。

所属接口类

startOrUpdateChannelMediaRelay

开始跨频道媒体流转发,或更新媒体流转发的目标频道。

C++
virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;

自从

自 v4.2.0 版本新增。

首次成功调用该方法会将媒体流从源频道转发到目标频道。若需将媒体流转发到其他频道,或停止转发到某个频道,可再次调用该方法更新目标频道。最多支持转发到六个目标频道。

注:

  • 请在加入频道后调用该方法。
  • 该方法仅在你是直播频道中的主播时有效。
  • 跨频道媒体流转发功能需联系技术支持启用。
  • 该方法不支持字符串用户 User Account。

相关回调

成功调用该方法后,SDK 会触发 onChannelMediaRelayStateChanged 回调,报告媒体流转发的状态。 常见状态如下:

参数

参数名描述
configuration

媒体流转发的配置,详见 ChannelMediaRelayConfiguration。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

    • -1:发生通用错误。
    • -2:参数无效。
    • -8:内部状态错误,可能是因为用户不是主播。

所属接口类

startOrUpdateChannelMediaRelayEx

开始或更新跨频道媒体流转发。

C++
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

停止跨频道媒体流转发。

C++
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

停止跨频道媒体流转发。

C++
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

跨频道媒体流转发状态变化回调。

C++
virtual void onChannelMediaRelayStateChanged(int state, int code)

该回调返回当前跨频道媒体流转发的状态和错误码信息。

参数

参数名描述
state

状态码。详见 CHANNEL_MEDIA_RELAY_STATE。

code

错误码。详见 CHANNEL_MEDIA_RELAY_ERROR。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类