Anchor Connection

本文档主要介绍如何使用视频直播核心组件 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();