本文将指导您如何快速集成 TUILiveKit 组件,实现主播开播全流程功能,包括开播前的准备和开播后的各种互动。
效果展示
TUILiveKit 提供了完整的主播功能模块,涵盖了从开播准备到直播互动的所有环节:
主播开播页:实现摄像头预览、美颜、滤镜、摄像头翻转等功能。
主播直播页:支持观众连麦、主播连线、主播 PK、直播间信息展示、观众列表、礼物和弹幕等功能。
主播开播预览 | 主播直播中 | 主播连麦中 |
![]() | ![]() |
![]() |
布局样式
TUILiveKit 提供了四种预设的布局模板,您可以在主播开播页布局功能入口根据需求选择合适的样式。
名称 | 动态宫格布局 | 浮动小窗布局 | 固定宫格布局 | 固定小窗布局 |
模板 ID | 600 | 601 | 800 | 801 |
描述 | 默认布局,可根据连麦人数动态调整宫格大小。 | 连麦嘉宾以浮动小窗形式显示。 | 连麦人数固定,每个嘉宾占据一个固定宫格。 | 连麦人数固定,嘉宾以固定小窗形式显示。 |
预览 | ![]() | ![]() | ![]() | ![]() |
前提条件
功能接入
步骤 1:创建并加载主播开播页视图
1. 主播准备页用于在开播前进行摄像头预览和功能设置,您需创建并加载主播准备页视图,具体示例代码如下:
// 创建 LiveCoreView 实例let coreView = LiveCoreView()// 创建 AnchorPrepareView 并传入 coreViewlet anchorPrepareView = AnchorPrepareView(coreView: coreView)// 设置代理,用于监听事件anchorPrepareView.delegate = self
2. 将创建的
AnchorPrepareView
加载到您的 ViewController
中。public override func loadView() {view = anchorPrepareView}
步骤 2:监听开播页回调
实现
AnchorPrepareViewDelegate
代理方法,以响应用户单击开始直播或返回按钮的事件。extension YourAnchorPrepareViewController : AnchorPrepareViewDelegate {public func onClickStartButton(state: PrepareState) {}public func onClickBackButton() {}}
步骤 3:创建并加载主播直播页
在
AnchorPrepareViewDelegate.onClickStartButton
回调中创建 AnchorView
实例,并传入直播信息进行初始化。您可以根据需求通过设置 liveInfo.seatLayoutTemplateId
来选择不同的布局。如果未设置,将默认使用 600 动态宫格布局。var liveInfo = LiveInfo()liveInfo.roomId = roomIdliveInfo.name = state.roomNameliveInfo.coverUrl = state.coverUrlliveInfo.isPublicVisible = state.privacyMode == .public// 选择不同模板liveInfo.seatLayoutTemplateId = 600let anchorView = AnchorView(liveInfo: liveInfo, coreView: self.coreView, behavior: .createRoom)anchorView.delegate = self
将创建的
AnchorView
加载到您的 ViewController
中。public override func loadView() {view = anchorView}
步骤 4:监听并处理直播事件
您可以实现
AnchorViewDelegate
代理方法,以响应用户单击结束直播或悬浮窗按钮的事件。extension YourViewController: AnchorViewDelegate {// 用户点击悬浮窗按钮的回调public func onClickFloatWindow() {// 在这里处理点击悬浮窗逻辑}// 用户点击结束直播按钮的回调public func onEndLiving(state: AnchorState) {// 在这里处理直播结束逻辑}}
功能定制
主播开播页
隐藏操作区视图。
anchorPrepareView.disableFeatureMenu(true)
隐藏操作区美颜功能。
anchorPrepareView.disableMenuBeautyButton(true)
隐藏操作区音效功能。
anchorPrepareView.disableMenuAudioEffectButton(true)
隐藏操作区翻转功能。
anchorPrepareView.disableMenuSwitchButton(true)
主播直播页
隐藏主播页顶部操作区。
anchorView.disableHeaderLiveData(true)
隐藏顶部操作区中的观众列表功能。
anchorView.disableHeaderVisitorCnt(true)
隐藏底部操作区的连麦功能。
anchorView.disableFooterCoGuest(true)
隐藏底部操作区的连线功能。
anchorView.disableFooterCoHost(true)
隐藏底部操作区的 PK 功能。
anchorView.disableFooterBattle(true)
隐藏更多设置面板中的音效功能。
anchorView.disableFooterSoundEffect(true)