Anchor Connection
Component Introduction
The Co-Host function is a real-time interactive communication method, specially tailored for anchors. It allows anchors from different rooms to achieve real-time interaction and communication during the live broadcast. The connection function of TUILiveKit can support up to 9 people in a single room to connect at the same time, providing powerful technical support for anchor interaction, knowledge sharing, cultural exchange, e-commerce training and other scenarios. It not only provides anchors with a variety of interactive methods, but also brings a richer and deeper viewing experience to the audience, thereby creating more surprises and value for both parties and making live broadcasts more attractive.
two-way connection | multi-way connection |
| |
Instructions for Use
Co-Host a Live
Click Co-Host Button | Select Host for Co-Host | Co-Host successful | Disconnect |
| | | |
Invited to Co-Host
Receives the invitation | Accepts the invitation |
| |
Custom Functionality
Replace Recommendation List Source
The recommended list data source in TUILiveKit by default uses
fetchLiveList
to retrieve the live stream list. If you need to use a custom recommended list, you can refer to the example code below to replace the corresponding recommended list data.// File Path: java/com/trtc/uikit/livekit/manager/controller/ConnectionController.javapublic 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); } }); }
Custom Co-Host Panel UI
If you need to customize the Co-Host panel UI, recommendation list UI, or connected list UI, please refer to the following paths for changes.
// File LocatiPathon:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/view/liveroom/view/anchor/component/livestreaming/connection/├── AnchorConnectionManagePanel.java // Co-Host panel├── AnchorRecommendedAdapter.java // recommendation list└── AnchorConnectingAdapter.java // connected list
Custom Video View UI
If you need to customize the Co-Host video view UI, please refer to the following paths for changes.
//
File Location: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);// Please modify the UI layout in livekit_video_view.xml}// Modify your UI interaction logic here}
Key Code
Co-Host
The TUILiveKit anchor co-host function is mainly implemented based on
LiveService
. In LiveService
, you can get the connection management class object through mTUIRoomEngine.getLiveConnectionManager(),
and then call the connection-related API functions to implement the co-host function. Taking the host between anchors A and B as an example, the specific interaction sequence can be referred to the figure below.
Anchor A initiates a co-host
Anchor A initiates a co-host by calling
requestConnection
and passing in the room id of anchor B to be connected in the parameter roomIdList.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javapublic void requestConnection(List<String> roomIdList, int timeoutSeconds, String extensionInfo, TUILiveConnectionManager.ConnectionRequestCallback callback) { mTUILiveConnectionManager.requestConnection(roomIdList, timeoutSeconds, extensionInfo, callback); }
Anchor A can receive the request approval callback through
onConnectionRequestAccept
.Anchor B receives a co-host request
Anchor B receives the connection request callback through
onConnectionRequestReceived
.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.javapublic void onConnectionRequestReceived(TUILiveConnectionManager.ConnectionUser inviter, List<TUILiveConnectionManager.ConnectionUser> inviteeList, String extensionInfo) { mConnectionController.onConnectionRequestReceived(inviter, inviteeList, extensionInfo); }
Anchor B accepts the connection request by calling
accept
.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javapublic void accept(String roomId, TUIRoomDefine.ActionCallback callback) { mTUILiveConnectionManager.acceptConnection(roomId, callback); }
Anchor A, B, and the audience in the room receive the
onConnectionUserListChanged
callback and are notified of changes to the co-host list.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.javapublic void onConnectionUserListChanged(List<TUILiveConnectionManager.ConnectionUser> connectedList, List<TUILiveConnectionManager.ConnectionUser> joinedList, List<TUILiveConnectionManager.ConnectionUser> leavedList) { mConnectionController.onConnectionUserListChanged(connectedList, joinedList, leavedList); }
Disconnects
Take the example of host B disconnects, the interaction sequence can be referred to in the figure below.
Anchor B calls
disconnect
to exit the co-host.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/service/impl/LiveServiceImpl.javapublic void disconnect(TUIRoomDefine.ActionCallback callback) { mTUILiveConnectionManager.disconnect(callback); }
Streamers A, B, and the audience in the room receive the
onConnectionUserListChanged
callback and are notified of changes to the co-host list.// File Path:Android/tuilivekit/src/main/java/com/trtc/uikit/livekit/manager/observer/LiveConnectionManagerObserver.javapublic void onConnectionUserListChanged(List<TUILiveConnectionManager.ConnectionUser> connectedList, List<TUILiveConnectionManager.ConnectionUser> joinedList, List<TUILiveConnectionManager.ConnectionUser> leavedList) { mConnectionController.onConnectionUserListChanged(connectedList, joinedList, leavedList); }
Note:
The co-host function is implemented based on LiveService. If you need to extend the co-host function, please refer to the TUILiveConnectionManager document.