# 了解 UIKit 开源方案 (/zh-CN/solutions/online-ktv/auikaraoke/build/manage-karaoke/uikitkaraoke)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

本文介绍针对 K 歌场景的 UIKit 开源方案 AUIKaraoke。

AUIKaraoke 是声网针对 K 歌场景推出的开源 UI 组件，集成了 [K 歌场景化 API](/zh-CN/api-reference/online-ktv/android/ktv-scenario/api/ktv-api) 以及声网实时互动 SDK、实时消息 SDK。该组件基于 [AUIKit](https://github.com/AgoraIO-Community/AUIKit/tree/main) 开发，主要提供房间管理功能。AUIKit 是一套场景化应用的脚手架，为 AUIKaraoke 提供可自定义的 UI 组件和一套通用的服务接口（Service），支持你基于 UI 组件像搭积木一样快速搭建起自己的业务逻辑。

你可以查看 AUIKaraoke [组件源码](https://github.com/AgoraIO-Community/AUIKitKaraoke)，快速搭建一个含 UI 界面的在线 K 歌房间，体验在线点歌、K 歌、麦位管理、收发礼物、文字聊天等在线 K 歌场景中的核心交互。

下图展示 AUIKaraoke 和 AUIKit 之间的关系：

![架构关系图](https://web-cdn.agora.io/docs-portal/img/online-ktv/auikaraoke-intro-android.png)

`AUIKaraoke`：以源码方式集成的库，可在库中进行自定义，依赖于 `AScenesKit`，`AScenesKit` 依赖于底层的 `AUIKit`。详细说明如下：

- `AUIKaraoke`：代表 K 歌 App，该部分需要你自行开发维护。
  - `Activity`：用于管理 K 歌 App 中房间列表页面和单个房间的详情页面。
  - `KaraokeUIKit`：负责统一调度 `KaraokeRoomView` 和 `AUIKaraokeRoomService`，并管理房间。
- `AScenesKit`：为 K 歌场景提供业务逻辑的组装模块，该部分由声网提供并维护。
  - `KaraokeRoomView`：K 歌的容器 View，用于管理 `AUIKit` 提供的 UI。
  - `AUIKaraokeRoomService`：K 歌的 Service。用于管理 `AUIKit` 提供的 Service。
  - `ViewBinder`：用于将 `KaraokeRoomView` 和 `AUIKaraokeRoomService` 绑定。
- `AUIKit`：基础库，该部分由声网提供并维护。
  - UI：基础 UI 组件。
  - Service：上麦、聊天、送礼物等业务能力。
  - Manager：管理环信即时通讯 IM（`AUIChatManager`）、实时消息 RTM（`AUIRtmManager`）、房间（`AUIRoomManager`）等模块。

![架构关系图](https://web-cdn.agora.io/docs-portal/img/online-ktv/auikaraoke-intro-ios.png)

`AUIKitKaraoke` 依赖于 `AScenesKit`，`AScenesKit` 依赖于底层的 `AUIKit`。详细说明如下：

- `AUIKitKaraoke`：代表 K 歌 App，该部分需要你自行开发维护。
  - `ViewController`：用于管理 K 歌 App 中房间列表页面和单个房间的详情页面。
  - `KaraokeUIKit`：负责统一调度 `KaraokeRoomView` 和 `AUIKaraokeRoomService`，并管理房间。
- `AScenesKit`：为 K 歌场景提供业务逻辑的组装模块，该部分由声网提供并维护。
  - `KaraokeRoomView`：K 歌的容器 View，用于管理 `AUIKit` 提供的 UI。
  - `AUIKaraokeRoomService`：K 歌的 Service。用于管理 `AUIKit` 提供的 Service。
  - `ViewBinder`：用于将 `KaraokeRoomView` 和 `AUIKaraokeRoomService` 绑定。
- `AUIKit`：基础库，该部分由声网提供并维护。
  - UI：基础 UI 组件。
  - Service：上麦、聊天、送礼物等业务能力。
  - Manager：管理环信即时通讯 IM（`AUIChatManager`）、实时消息 RTM（`AUIRtmManager`）、房间（`AUIRoomManager`）等模块。

## 核心功能 [#核心功能]

AUIKaraoke 提供下列核心功能：

**房间管理**：

- 创建、销毁房间。
- 获取房间列表，便于对所有房间进行管理。

**麦位管理**：

- 上麦和下麦：用户可以随时上下麦，实现多人互动 K 歌。
- 踢人下麦：房主可以将用户从麦位上踢下来，以管理麦位的占用情况。
- 封禁和锁麦：麦位可以被封禁或锁定，以更好维护 K 歌房间内的秩序。

**音乐播放器**：

- 歌曲控制：可以随时控制音乐的播放，如预加载、暂停、切歌等。

**歌曲管理**：

- 搜索歌曲：声网曲库涵盖至少 20 万首正版歌曲，可以通过歌曲或歌手关键词搜索，检索查找自己喜欢的歌曲。
- 点歌和切歌：用户可以点播自己喜欢的歌曲，并在需要时切换到下一首。
- 置顶歌曲：房主可以将某首歌曲置顶，确保它在播放列表中优先播放。

**合唱功能**：

- 加入、离开合唱：用户可以随时加入或离开合唱，与上麦的演唱者一起享受 K 歌的乐趣。
- 歌词同步：进行合唱时，主唱、伴唱、观众端的歌词可以实现同步，提供更出色的合唱体验。

**收发礼物**：

- 房间内的用户彼此之间可以送礼物，增加互动趣味性。

**文字聊天**：

- 除了上麦互动，K 歌房间内的用户还可以发送文字消息进行互动。

<DocsImage alt="消息互动示例" src="https://web-cdn.agora.io/docs-files/1695201580570" displayWidth="40%" />
