tencent cloud

文档反馈

主播连线

最后更新时间:2024-12-24 18:01:24
    本文档主要介绍如何使用视频直播核心组件 LiveStreamCore 模块的 LiveCoreView 实现主播连线。

    前提条件

    在使用 LiveStreamCore 前,您需要先集成与登录 LiveStreamCore ,以便后续功能正常使用。

    使用指引

    步骤1:将 LiveCoreView 添加到视图上

    您需要先导入 LiveStreamCore 模块,然后创建一个 LiveCoreView 视图对象,并将其添加到自己的视图上。
    iOS
    Android
    import LiveStreamCore
    import RTCRoomEngine
    
    class AnchorConnectionController: UIViewController {
    private let liveCoreView: LiveCoreView = {
    let view = LiveCoreView()
    return view
    }()
    override func viewDidLoad() {
    super.viewDidLoad()
    self.liveCoreView.registerConnectionObserver(observer: self)
    // 将 liveCoreView 添加到视图上,同时设置好布局约束
    }
    deinit {
    self.liveCoreView.unregisterConnectionObserver(observer: self)
    }
    }
    import com.trtc.uikit.livekit.livestreamcore.LiveCoreView;
    import com.trtc.uikit.livekit.livestreamcore.LiveCoreViewDefine;
    
    public class AnchorConnectionActivity extends AppCompatActivity implements LiveCoreViewDefine.ConnectionObserver {
    private LiveCoreView liveCoreView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    liveCoreView = new LiveCoreView(this);
    addContentView(liveCoreView,
    new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    
    liveCoreView.registerConnectionObserver(this);
    }
    }

    步骤2:主播连线

    发起连线

    当您想和其他房间的主播发起连线时,可调用 requestCrossRoomConnection 接口实现,传入两个参数:连线主播所在房间的房间Id、超时时长。
    iOS
    Android
    let targetRoomId = "live_100011" //请将这里替换成您想要连线的主播所在房间的房间Id
    let timeout = 30 // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
    self.liveCoreView.requestCrossRoomConnection(roomId: targetRoomId, timeOut: timeout) {
    // 发起连线请求成功
    } onError: { code, message
    // 发起连线请求失败
    }
    String targetRoomId = "live_100011"; //请将这里替换成您想要连线的主播所在房间的房间Id
    int timeout = 30; // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
    liveCoreView.requestCrossRoomConnection(targetRoomId, timeout, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 发起连线请求成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 发起连线请求失败
    }
    });
    当您收到连线邀请时,您会收到 onCrossRoomConnectionRequest 回调,您可通过 respondToCrossRoomConnection 接口接受/拒绝连线请求。
    iOS
    Android
    func onCrossRoomConnectionRequest(hostUser: TUIConnectionUser) {
    self.liveCoreView.respondToCrossRoomConnection(roomId: hostUser.roomId, isAccepted: true) {
    // 响应请求成功
    } onError: {code, message in
    // 响应请求失败
    }
    }
    @Override
    public void onCrossRoomConnectionRequest(TUILiveConnectionManager.ConnectionUser connectionUser) {
    boolean isAccepted = true; // true:同意连线, false:拒绝连线
    liveCoreView.respondToCrossRoomConnection(connectionUser.userId, isAccepted, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 响应请求成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 响应请求失败
    }
    });
    }

    中断连线

    当您想中断当前连线时,可调用 terminateCrossRoomConnection 接口实现。
    iOS
    Android
    self.liveCoreView.terminateCrossRoomConnection()
    liveCoreView.terminateCrossRoomConnection();
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持