主播开播(Android)

最近更新时间:2025-09-08 22:59:42

我的收藏
本文将指导您如何快速集成 TUILiveKit 组件,实现主播开播全流程功能,包括开播前的准备和开播后的各种互动。

效果展示

TUILiveKit 提供了完整的主播功能模块,涵盖了从开播准备到直播互动的所有环节:
主播开播页:实现摄像头预览、美颜、滤镜、摄像头翻转等功能。
主播直播页:支持观众连麦、主播连线、主播 PK、直播间信息展示、观众列表、礼物和弹幕等功能。
主播开播预览
主播直播中
主播连麦中





布局样式

TUILiveKit 提供了四种预设的布局模板,您可以在主播开播页布局功能入口根据需求选择合适的样式。
名称
动态宫格布局
浮动小窗布局
固定宫格布局
固定小窗布局
模板 ID
600
601
800
801
描述
默认布局,可根据连麦人数动态调整宫格大小。
连麦嘉宾以浮动小窗形式显示。
连麦人数固定,每个嘉宾占据一个固定宫格。
连麦人数固定,嘉宾以固定小窗形式显示。
预览







前提条件

在该功能接入之前,需要先完成 准备工作 并完成 登录

功能接入

步骤 1:创建并加载主播准备页视图

主播准备页用于在开播前进行摄像头预览和功能设置,您需创建并加载主播准备页视图,具体示例代码如下:
Kotlin
Java
val roomId = "1236666"

val anchorPrepareView = AnchorPrepareView(context)
anchorPrepareView.init(roomId, null)

setContentView(mAnchorPrepareView)
String roomId = "live_123456";

mAnchorPrepareView = new AnchorPrepareView(this);
mAnchorPrepareView.init(roomId, null);

setContentView(mAnchorPrepareView)

步骤 2:监听开播页回调

实现 AnchorPrepareViewDefine.AnchorPrepareViewListener 代理方法,以响应用户点击 “开始直播”或“返回” 按钮的事件。
Kotlin
Java
// 在您的 Activity 中实现 AnchorPrepareViewDefine.AnchorPrepareViewListener 接口,并重写下面两个方法。
// 点击开始直播按钮回调
override fun onClickStartButton() {
//
}

override fun onClickBackButton() {
finish();
}

// 给主播准备页视图添加监听器。
anchorPrepareView.addAnchorPrepareViewListener(this)
// 在您的 Activity 中实现 AnchorPrepareViewDefine.AnchorPrepareViewListener 接口,并重写下面两个方法。
// 点击开始直播按钮回调
@Override
public void onClickStartButton() {

}

// 点击返回按钮回调
@Override
public void onClickBackButton() {
}

// 给主播准备页视图添加监听器。
mAnchorPrepareView.addAnchorPrepareViewListener(this)

步骤 3:创建并加载主播直播页

AnchorPrepareViewDefine.AnchorPrepareViewListener.onClickStartButton 回调中创建 AnchorView 实例,并传入直播信息进行初始化。您可以根据需要通过设置 liveInfo.seatLayoutTemplateId 来选择不同的布局。如果未设置,将默认使用 600 动态宫格布局。
Kotlin
Java
val anchorView = AnchorView(context)

val liveInfo = LiveInfo()
liveInfo.roomInfo = TUIRoomDefine.RoomInfo();
liveInfo.roomInfo.roomId = "1236666"
liveInfo.roomInfo.name = anchorPrepareView?.state?.roomName?.getValue()
liveInfo.isPublicVisible = anchorPrepareView?.state?.liveMode?.getValue() == LiveStreamPrivacyStatus.PUBLIC
liveInfo.coverUrl = anchorPrepareView?.state?.coverURL?.getValue()

// 选择不同布局
liveInfo.seatLayoutTemplateId = 600

anchorView.init(liveInfo, anchorPrepareView?.coreView, AnchorViewDefine.RoomBehavior.CREATE_ROOM);

setContentView(anchorView)
mAnchorView = new AnchorView(this);

TUILiveListManager.LiveInfo liveInfo = new TUILiveListManager.LiveInfo();
liveInfo.roomInfo = new TUIRoomDefine.RoomInfo();
liveInfo.roomInfo.roomId = "1236666";
liveInfo.roomInfo.name = mAnchorPrepareView.getState().roomName.getValue();
liveInfo.isPublicVisible = mAnchorPrepareView.getState().liveMode.getValue() == AnchorPrepareViewDefine.LiveStreamPrivacyStatus.PUBLIC;
liveInfo.coverUrl = mAnchorPrepareView.getState().coverURL.getValue();
mAnchorView.init(liveInfo, mAnchorPrepareView.getCoreView(), AnchorViewDefine.RoomBehavior.CREATE_ROOM);

setContentView(mAnchorView)

步骤 4:监听并处理直播事件

您可以实现 AnchorViewDelegate 代理方法,以响应用户单击结束直播悬浮窗按钮的事件。
Kotlin
Java
// 在您的 Activity 中实现 AnchorViewDefine.AnchorViewListener 接口,并重写下面两个方法。
// 点击结束直播按钮回调
override fun onEndLiving(state: AnchorViewDefine.AnchorState?) {
}

// 点击悬浮窗按钮回调
override fun onClickFloatWindow() {

}

// 给主播开播页视图添加监听器。
anchorView.addAnchorViewListener(this)
// 在您的 Activity 中实现 AnchorViewDefine.AnchorViewListener 接口,并重写下面两个方法。
// 点击结束直播按钮回调
@Override
public void onEndLiving(AnchorViewDefine.AnchorState state) {
}

// 点击悬浮窗按钮回调
@Override
public void onClickFloatWindow() {
}

// 给主播开播页视图添加监听器。
mAnchorView.addAnchorViewListener(this);

功能定制

主播开播页功能定制

隐藏操作区视图。
Kotlin
Java
anchorPrepareView.disableFeatureMenu(true)
mAnchorPrepareView.disableFeatureMenu(true);
隐藏操作区美颜功能。
Kotlin
Java
anchorPrepareView.disableMenuBeautyButton(true)
mAnchorPrepareView.disableMenuBeautyButton(true);
隐藏操作区音效功能。
Kotlin
Java
anchorPrepareView.disableMenuAudioEffectButton(true)
mAnchorPrepareView.disableMenuAudioEffectButton(true);
隐藏操作区翻转功能。
Kotlin
Java
anchorPrepareView.disableMenuSwitchButton(true)
mAnchorPrepareView.disableMenuSwitchButton(true);

主播直播页功能定制

隐藏主播页顶部操作区。
Kotlin
Java
anchorView.disableHeaderLiveData(true)
mAnchorView.disableHeaderLiveData(true);
隐藏顶部操作区中的观众列表功能。
Kotlin
Java
anchorView.disableHeaderVisitorCnt(true)
mAnchorView.disableHeaderVisitorCnt(true);
隐藏底部操作区的连麦功能。
Kotlin
Java
anchorView.disableFooterCoGuest(true)
mAnchorView.disableFooterCoGuest(true);
隐藏底部操作区的连线功能。
Kotlin
Java
anchorView.disableFooterCoHost(true)
mAnchorView.disableFooterCoHost(true);
隐藏底部操作区的 PK 功能。
Kotlin
Java
anchorView.disableFooterBattle(true)
mAnchorView.disableFooterBattle(true);
隐藏更多设置面板中的音效功能。
Kotlin
Java
anchorView.disableFooterSoundEffect(true)
mAnchorView.disableFooterSoundEffect(true);