Anchor Connection
本文档主要介绍如何使用视频直播核心组件
LiveStreamCore
模块的 LiveCoreView
实现主播连线。前提条件
使用指引
步骤1:将 LiveCoreView 添加到视图上
您需要先导入
LiveStreamCore
模块,然后创建一个 LiveCoreView
视图对象,并将其添加到自己的视图上。importLiveStreamCore
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;@Overrideprotected 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、超时时长。let targetRoomId = "live_100011" //请将这里替换成您想要连线的主播所在房间的房间Idlet timeout = 30 // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调self.liveCoreView.requestCrossRoomConnection(roomId: targetRoomId, timeOut: timeout) {// 发起连线请求成功} onError: { code, message// 发起连线请求失败}
String targetRoomId = "live_100011"; //请将这里替换成您想要连线的主播所在房间的房间Idint timeout = 30; // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调liveCoreView.requestCrossRoomConnection(targetRoomId, timeout, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 发起连线请求成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 发起连线请求失败}});
当您收到连线邀请时,您会收到
onCrossRoomConnectionRequest
回调,您可通过 respondToCrossRoomConnection
接口接受/拒绝连线请求。func onCrossRoomConnectionRequest(hostUser: TUIConnectionUser) {self.liveCoreView.respondToCrossRoomConnection
(
roomId: hostUser.roomId, isAccepted: true)
{
// 响应请求成功
}
onError
:
{
code
,
message
in
// 响应请求失败
}
}
@Overridepublic void onCrossRoomConnectionRequest(TUILiveConnectionManager.ConnectionUser connectionUser) {boolean isAccepted = true; // true:同意连线, false:拒绝连线liveCoreView.respondToCrossRoomConnection(connectionUser.userId, isAccepted, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 响应请求成功
}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 响应请求失败
}});}
中断连线
当您想中断当前连线时,可调用
terminateCrossRoomConnection
接口实现。self.liveCoreView.terminateCrossRoomConnection()
liveCoreView.terminateCrossRoomConnection();