跳到主要内容

订阅与取消

对于仅自己发布,不跟其他人连麦注1PK注2 的情况,并不需要执行订阅逻辑。如果连麦或 PK,则主播的订阅流程与会议模式相同。

提示

注1:连麦 是指在当前直播间内,主播邀请观众上麦,观众切换为主播后,主播们之间互相发布订阅的情况。 注2:PK 是指不同直播间的主播,相互订阅建立连接的情况。

订阅资源

直播房间内有多名主播时,主播之间也需要订阅才能相互看见、听见。需调用 RCRTCEngine 中的 Subscribe 来订阅单个或多个媒体流。

  • 参数说明:

    参数类型说明
    remoteUserIdString远端用户 ID
    mediaTypeRCRTCMediaType订阅远端用户的音视频资源类型
    isTinybool是否订阅视频小流
  • 示例代码:

    // 订阅远端用户的小分辨率视频资源
    var subTinyVideo = true;
    Engine.Subscribe(remoteUserId, RCRTCMediaType.AUDIO_VIDEO, subTinyVideo);

批量订阅资源

所属类:RCRTCEngine

方法:Subscribe()

调用示例: Engine.Subscribe(remoteUserIds);

  • 参数说明:

    参数类型说明
    remoteUserIdsIList<String>远端用户 ID 列表
    mediaTypeRCRTCMediaType订阅远端用户的音视频资源类型
    isTinybool是否订阅视频小流
  • 示例代码:

    // 订阅远端用户的小分辨率视频资源
    var subTinyVideo = true;
    Engine.Subscribe(new List<string>() { "remoteUserId1", "remoteUserId2" }, RCRTCMediaType.AUDIO_VIDEO, subTinyVideo);

取消订阅

当需要取消订阅时,可调用 RCRTCEngine 中的 Unsubscribe 来取消订阅一道流或多道流。取消订阅接口通常跟订阅接口配对使用,但如果是用户想要退出房间,则不需要调用取消订阅方法,在调用退出房间接口时,SDK 内部会自动进行取消处理。

  • 参数说明:

    参数类型说明
    remoteUserIdString远端用户 ID
    mediaTypeRCRTCMediaType远端用户的音视频资源类型
  • 示例代码:

    Engine.Unsubscribe(remoteUserId, RCRTCMediaType.AUDIO_VIDEO);

批量取消订阅

所属类:RCRTCEngine

方法:Unsubscribe()

调用示例: Engine.Unsubscribe(remoteUserIds);

  • 参数说明:

    参数类型说明
    remoteUserIdsIList<String>远端用户 ID 列表
    mediaTypeRCRTCMediaType远端用户的音视频资源类型
  • 示例代码:

    Engine.Unsubscribe(new List<string>() { "remoteUserId1", "remoteUserId2" }, RCRTCMediaType.AUDIO_VIDEO);