直播连线
功能介绍
连线功能是一种实时互动交流方式,专门为主播量身定制。它让来自不同房间的主播在直播过程中实现实时互动与交流,TUILiveKit 的连线功能可支持单房间内多达9人同时连线,为主播互动、知识分享、文化交流、电商培训等多种场景提供了强大的技术支持,不仅为主播提供多样化的互动方式,也为观众带来更加丰富和深入的观看体验,从而为双方创造更多的惊喜和价值,使直播更具吸引力。
双人连线 | 多人连线 |
| |
接入流程
主播连线流程
TUILiveKit 主播连线功能主要是基于 LiveCoreView 实现的,您可以按如下 API 来完成主播连线功能。这里以主播 A 与主播 B 连线为例实现如下。
说明:
以下是由 LiveCoreView 提供的主动调用方法。
所有的回调方法是指 LiveCoreView 设置的 ConnectionObserver 对象中的回调方法。
主播 A 发起连线
主播 A 通过调用
requestCrossRoomConnection
发起连线,在参数 roomId 中传入需要连线的主播 B 房间 id。val roomId = "anchorBRoomId"mLiveViewList.requestCrossRoomConnection(roomId, 10, null)
String roomId = "anchorBRoomId";mLiveViewList.requestCrossRoomConnection(roomId, 10, null);
let roomId = "anchorRoomId"liveCoreView.requestCrossRoomConnection(roomId: roomId, timeOut: 60) {} onError: { code, message in}
NSString *roomId = @"anchorRoomId";[liveCoreView requestCrossRoomConnection:roomIdtimeOut:60onSuccess:^(void) {} onError:^(NSInteger code, NSString * _Nonnull message) {}];
主播 A 可通过
onCrossRoomConnectionAccepted
接收请求同意回调。主播 B 收到连线请求
主播 B 通过
onCrossRoomConnectionRequest
接收连线请求回调。override fun onCrossRoomConnectionRequest(inviterUser: UserInfo) {Log.i(TAG, "收到主播A连线房间请求:${inviterUser.userId}")}
@Overridepublic void onCrossRoomConnectionRequest(LiveStreamDefine.RoomInfo roomInfo) {Log.i(TAG, "收到主播A连线房间请求:" + roomInfo.roomId);}
func onCrossRoomConnectionRequest(hostUser: TUIConnectionUser) {print("收到主播A连线房间请求:\(hostUser.userId)")}
- (void)onCrossRoomConnectionRequest:(TUIConnectionUser *)hostUser {NSLog(@"收到主播A连线房间请求:%@", hostUser.userId);}
主播 B 通过调用
respondToCrossRoomConnection
响应连线请求。liveCoreView.respondToCrossRoomConnection(roomId, true, null)
// 同意连线请求liveCoreView.respondToCrossRoomConnection(roomId, true, null);
liveCoreView.respondToCrossRoomConnection(roomId: roomId, isAccepted: true) {} onError: { code, message in}
[liveCoreView respondToCrossRoomConnection:roomIdisAccepted:trueonSuccess:^(void) {} onError:^(NSInteger code, NSString * _Nonnull message) {}];
主播 A, B以及房间内观众收到
onConnectedRoomsUpdated
回调,收到接收连线列表发生变化通知。 override fun onConnectedRoomsUpdated(inviterUser: UserInfo) {Log.i(TAG, "主播连线房间列表更新")}
@Overridepublic void onConnectedRoomsUpdated(List<LiveStreamDefine.RoomInfo> roomList) {Log.i(TAG, "主播连线房间列表更新");}
func onConnectedRoomsUpdated(hostUserList: [TUIConnectionUser]) {print("主播连线房间列表更新")}
- (void)onConnectedRoomsUpdated:(NSArray<TUIConnectionUser *> *)hostUserList {NSLog(@"主播连线房间列表更新");}
退出连线流程
主播 B 调用
terminateIntraRoomConnection
退出连线。public void disconnect(TUIRoomDefine.ActionCallback callback) {mTUILiveConnectionManager.disconnect(callback);}
liveCoreView.terminateIntraRoomConnection()
liveCoreView.terminateCrossRoomConnection()
[liveCoreView terminateCrossRoomConnection];
说明:
主播连线时序图