tencent cloud

文档反馈

最后更新时间:2024-08-30 17:15:33

    功能介绍

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

    使用说明

    主播发起连线

    点击连线按钮
    选择主播发起连线
    连线成功
    断开连线
    
    
    
    
    
    
    
    
    
    
    
    

    主播接收连线

    主播收到邀请
    主播接受邀请
    
    
    
    
    
    

    功能定制

    替换推荐列表数据源

    TUILiveKit 的连线推荐列表数据源默认是使用fetchLiveList获取直播列表。若您需要使用自定义的推荐列表,可参考下方示例代码替换对应的推荐列表数据。
    java
    // 文件位置: java/com/trtc/uikit/livekit/manager/controller/ConnectionController.java
    
    public void fetchLiveList() { mLiveService.fetchLiveList(mConnectionState.recommendedCursor, FETCH_LIST_COUNT, new TUILiveListManager.LiveInfoListCallback() { @Override public void onSuccess(TUILiveListManager.LiveInfoListResult result) { handlerFetchLiveListSuccess(result); } @Override public void onError(TUICommonDefine.Error error, String s) { ErrorHandler.onError(error); } }); }

    自定义连线面板 UI

    如您需要自定义连线面板 UI、推荐列表 UI、已连线列表 UI ,请参考以下路径更改。
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/view/liveroom/view/anchor/component/livestreaming/connection/
    
    ├── AnchorConnectionManagePanel.java // 连线面板视图
    ├── AnchorRecommendedAdapter.java // 推荐列表
    └── AnchorConnectingAdapter.java // 已连线列表

    自定义连线视图

    如您需要自定义连线视图 UI ,请参考以下路径更改。
    java
    // 文件位置:view/liveroom/view/common/video/VideoView.java
    
    public class VideoView extends BasicView {
    @Override protected void initView() {
    LayoutInflater.from(mContext).inflate(R.layout.livekit_video_view, this, true);
    // 请在livekit_video_view.xml中修改UI布局
    // 在此修改您的UI交互逻辑
    }
    }

    关键代码

    主播连线

    TUILiveKit 主播连线功能主要是基于 LiveService 实现的,在LiveService中,您可通过 mTUIRoomEngine.getLiveConnectionManager() 获取到连线管理类对象,进而调用连线相关 API 函数,实现连线功能。以主播 A,B连线为例,具体交互时序可参考下图。
    
    
    

    主播 A 发起连线

    主播 A 通过调用requestConnection发起连线,在参数 roomIdList中传入需要连线的主播 B房间id。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.java
    public void requestConnection(List<String> roomIdList, int timeoutSeconds, String extensionInfo, TUILiveConnectionManager.ConnectionRequestCallback callback) { mTUILiveConnectionManager.requestConnection(roomIdList, timeoutSeconds, extensionInfo, callback);
    }
    主播 A 可通过 onConnectionRequestAccept 接收请求同意回调。

    主播 B 收到连线请求

    主播 B 通过 onConnectionRequestReceived 接收连线请求回调。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.java
    public void onConnectionRequestReceived(TUILiveConnectionManager.ConnectionUser inviter, List<TUILiveConnectionManager.ConnectionUser> inviteeList, String extensionInfo) { mConnectionController.onConnectionRequestReceived(inviter, inviteeList, extensionInfo); }
    主播 B 通过调用 connectionService.accept(roomId) 接受连线请求。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.java
    public void accept(String roomId, TUIRoomDefine.ActionCallback callback) { mTUILiveConnectionManager.acceptConnection(roomId, callback); }
    主播 A, B 以及房间内观众收到 onConnectionUserListChanged 回调,收到接收连线列表发生变化通知。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.java
    public void onConnectionUserListChanged(List<TUILiveConnectionManager.ConnectionUser> connectedList, List<TUILiveConnectionManager.ConnectionUser> joinedList, List<TUILiveConnectionManager.ConnectionUser> leavedList) { mConnectionController.onConnectionUserListChanged(connectedList, joinedList, leavedList); }

    主播退出连线

    以主播 B 退出连线为例,交互时序可参考下图。
    
    
    
    主播 B调用 disconnect退出连线。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.java
    public void disconnect(TUIRoomDefine.ActionCallback callback) { mTUILiveConnectionManager.disconnect(callback); }
    主播 A, B 以及房间内观众收到 onConnectionUserListChanged 回调,收到接收连线列表发生变化通知。
    java
    // 文件位置:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.java
    public void onConnectionUserListChanged(List<TUILiveConnectionManager.ConnectionUser> connectedList, List<TUILiveConnectionManager.ConnectionUser> joinedList, List<TUILiveConnectionManager.ConnectionUser> leavedList) { mConnectionController.onConnectionUserListChanged(connectedList, joinedList, leavedList); }
    说明:
    连线功能是基于 LiveService 实现,若您需要扩展连线功能,可参考 TUILiveConnectionManager 文档。
    联系我们

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

    技术支持

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

    7x24 电话支持