tencent cloud

文档反馈

主播连线(TUILiveKit)

最后更新时间:2024-12-19 16:39:49

    功能介绍

    连线功能是一种实时互动交流方式,专门为主播量身定制。它让来自不同房间的主播在直播过程中实现实时互动与交流,TUILiveKit 的连线功能可支持单房间内多达9人同时连线,为主播互动、知识分享、文化交流、电商培训等多种场景提供了强大的技术支持,不仅为主播提供多样化的互动方式,也为观众带来更加丰富和深入的观看体验,从而为双方创造更多的惊喜和价值,使直播更具吸引力。
    双人连线
    多人连线
    
    
    
    
    
    

    接入流程

    主播连线流程

    TUILiveKit 主播连线功能主要是基于 LiveCoreView 实现的,您可以按如下 API 来完成主播连线功能。这里以主播 A 与主播 B 连线为例实现如下。
    说明:
    以下是由 LiveCoreView 提供的主动调用方法。
    所有的回调方法是指 LiveCoreView 设置的 ConnectionObserver 对象中的回调方法。

    主播 A 发起连线

    主播 A 通过调用 requestCrossRoomConnection 发起连线,在参数 roomId 中传入需要连线的主播 B 房间 id。
    Android
    iOS
    Kotlin
    java
    val roomId = "anchorBRoomId"
    mLiveViewList.requestCrossRoomConnection(roomId, 10, null)
    String roomId = "anchorBRoomId";
    mLiveViewList.requestCrossRoomConnection(roomId, 10, null);
    Swift
    OC
    let roomId = "anchorRoomId"
    
    liveCoreView.requestCrossRoomConnection(roomId: roomId, timeOut: 60) {
    } onError: { code, message in
    }
    NSString *roomId = @"anchorRoomId";
    
    [liveCoreView requestCrossRoomConnection:roomId
    timeOut:60
    onSuccess:^(void) {
    } onError:^(NSInteger code, NSString * _Nonnull message) {
    }];
    主播 A 可通过 onCrossRoomConnectionAccepted 接收请求同意回调。

    主播 B 收到连线请求

    主播 B 通过 onCrossRoomConnectionRequest 接收连线请求回调。
    Android
    iOS
    Kotlin
    java
    override fun onCrossRoomConnectionRequest(inviterUser: UserInfo) {
    Log.i(TAG, "收到主播A连线房间请求:${inviterUser.userId}")
    }
    @Override
    public void onCrossRoomConnectionRequest(LiveStreamDefine.RoomInfo roomInfo) {
    Log.i(TAG, "收到主播A连线房间请求:" + roomInfo.roomId);
    }
    Swift
    OC
    func onCrossRoomConnectionRequest(hostUser: TUIConnectionUser) {
    print("收到主播A连线房间请求:\\(hostUser.userId)")
    }
    - (void)onCrossRoomConnectionRequest:(TUIConnectionUser *)hostUser {
    NSLog(@"收到主播A连线房间请求:%@", hostUser.userId);
    }
    主播 B 通过调用 respondToCrossRoomConnection 响应连线请求。
    Android
    iOS
    Kotlin
    java
    liveCoreView.respondToCrossRoomConnection(roomId, true, null)
    // 同意连线请求
    liveCoreView.respondToCrossRoomConnection(roomId, true, null);
    Swift
    OC
    liveCoreView.respondToCrossRoomConnection(roomId: roomId, isAccepted: true) {
    } onError: { code, message in
    }
    [liveCoreView respondToCrossRoomConnection:roomId
    isAccepted:true
    onSuccess:^(void) {
    } onError:^(NSInteger code, NSString * _Nonnull message) {
    }];
    主播 A, B以及房间内观众收到 onConnectedRoomsUpdated 回调,收到接收连线列表发生变化通知。
    Android
    iOS
    Kotlin
    java
    override fun onConnectedRoomsUpdated(inviterUser: UserInfo) {
    Log.i(TAG, "主播连线房间列表更新")
    }
    @Override
    public void onConnectedRoomsUpdated(List<LiveStreamDefine.RoomInfo> roomList) {
    Log.i(TAG, "主播连线房间列表更新");
    }
    Swift
    OC
    func onConnectedRoomsUpdated(hostUserList: [TUIConnectionUser]) {
    print("主播连线房间列表更新")
    }
    - (void)onConnectedRoomsUpdated:(NSArray<TUIConnectionUser *> *)hostUserList {
    NSLog(@"主播连线房间列表更新");
    }

    退出连线流程

    主播 B 调用 terminateIntraRoomConnection 退出连线。
    Android
    iOS
    kotlin
    java
    public void disconnect(TUIRoomDefine.ActionCallback callback) {
    mTUILiveConnectionManager.disconnect(callback);
    }
    liveCoreView.terminateIntraRoomConnection()
    Swift
    OC
    liveCoreView.terminateCrossRoomConnection()
    [liveCoreView terminateCrossRoomConnection];
    说明:
    连线功能是基于 LiveCoreView 实现,若您需要扩展连线功能,可参见 LiveCoreView 文档。

    主播连线时序图

    
    
    
    联系我们

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

    技术支持

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

    7x24 电话支持