互动小游戏

最近更新时间:2026-01-12 10:41:31

我的收藏
互动小游戏是一款专为直播、语聊房等实时互动场景设计的轻量级、高性能、多人在线互动游戏组件。该组件旨在帮助开发者快速、低成本地在现有音视频房间中集成丰富的互动小游戏,从而显著提升用户参与度和房间活跃度。
组件封装了游戏的核心逻辑、UI 界面与网络同步,宿主 App 只需通过简单的 API 调用即可完成游戏的加载、展示与控制。

核心特性

多游戏支持:首批支持五子棋、飞行棋等经典互动游戏,游戏库可持续扩展。
实时同步:基于 TUILiveKit 现有的实时信令通道,实现低延迟的多玩家状态同步。
无缝嵌入:以 View 或 Fragment 形式提供,可轻松嵌入到任何直播/语聊房界面布局中。
高性能与低功耗:优化渲染逻辑,在保证流畅动画效果的同时,有效控制 CPU 与内存占用。
标准化接口:提供简洁清晰的 API,集成流程简单易懂。

适用场景

直播平台:主播与观众进行游戏互动。
语音社交平台:语聊房内房主与嘉宾、听众进行破冰游戏。
任何需要增强实时互动的应用场景。

效果展示

五子棋
飞行棋





前提条件

参考 准备工作 完成 TUILiveKit 组件接入,当前支持 LiveKit 的版本为 TUILiveKit 3.4 及以上;如需 iOS 版本组件,请 提交工单 联系我们。

组件接入

步骤1:集成 GameBox 组件

下载并拷贝文件:下载并解压 TUIKit_Android,将 live/tuigamebox 文件夹拷贝到您工程的根目录,使其与 app 文件夹同级。


步骤2:工程配置

编辑您工程根目录的 settings.gradle 文件,添加以下代码来导入 tuigamebox 模块。
settings.gradle.kts
settings.gradle
include(":tuigamebox")
include ':tuigamebox'

步骤3:接入互动小游戏组件

1. 在您的应用中接入互动小游戏组件,使主播/观众能够在直播间一起玩互动小游戏。请参考 Demo 中的接入示例在 XML 文件中集成 GameView
<com.trtc.uikit.gamekit.gameview.GameView
android:id="@+id/game_view"
android:layout_width="match_parent"
android:layout_height="440dp"
android:orientation="vertical"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="-100dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/seat_grid_container" >
</com.trtc.uikit.gamekit.gameview.GameView>
或者通过代码动态创建 GameView 组件:
// 1. 创建 GameView 对象
GameView tuiGameView = new GameView(mContext);

// 2. 初始化 GameView ,userId 为当前用户的 ID,userName 为用户昵称,avatarUrl 为用户头像URL,isRoomOwner表示当前是否是房主
tuiGameView.init("userId", "userName", "avatarUrl", isRoomOwner);

// 3. 将 GameView 对象添加到您的视图上
yourGameViewContainerView.addView(tuiGameView);
初始化接口原型:
void init(string userId, string userName, string avatarUrl, bool isRoomOwner);
参数
类型
含义
userId
string
当前登录的用户的user ID。
userName
string
当前登录的用户名,互动小游戏界面中会有展示。
avatarUrl
string
当前登录用户的头像地址,互动小游戏界面中会有展示,如果传入为空,显示默认头像。
isRoomOwner
bool
当前登录的用户是否是房主。
2. 处理生命周期事件,在 Activity 或者 Fragment 中调用 GameView 对象的相关事件:
@Override
public void onResume() {
super.onResume();
if (mGameView != null) {
mGameView.onResume();
}
}

@Override
public void onPause() {
super.onPause();
if (mGameView != null) {
mGameView.onPause();
}
}

@Override
public void onDestroy() {
super.onDestroy();
if (mGameView != null) {
mGameView.onDestroy();
}
}

步骤4:启动小游戏

说明:
当前只有房主可以启动小游戏,当房主启动小游戏后,观众端互动小游戏组件内部会自动监听房主的开始指令并同步显示游戏界面,无需额外代码干预。
调用 startGame 接口即可启动互动小游戏,小游戏相关事件都在互动小游戏内部闭环,外部不需要关注和处理
// 启动飞行棋
mGameView.startGame(LiteGameEngine.GameID.FLYINGCHESS);
// 启动五子棋
mGameView.startGame(LiteGameEngine.GameID.GOBANG);

步骤5:切换小游戏

调用 startGame 接口时传入新的 game ID 即可切换到新的小游戏
mGameView.startGame(LiteGameEngine.GameID.FLYINGCHESS);

步骤6:退出小游戏

调用 stopCurrentRunningGame 接口即可退出互动小游戏模式
说明:
房主退出直播间、语聊房时,互动小游戏自动退出,观众端互动小游戏界面会自动消失。
// 退出当前正在运行的小游戏
mGameView.stopCurrentRunningGame();

常见问题

只支持五子棋和飞行棋这两种游戏吗?

是的,目前只支持这两种,其他游戏正在持续增加中。

接入过程需要后台开发参与吗?

不需要,该功能基于 TUILiveKit 现有的实时信令通道,无需额外的后台服务。