跑通示例项目
更新时间: 2024/11/20 17:05:14
网易云信为您提供开源的示例项目,您可以参考本文档快速跑通示例项目,体验在线 K 歌效果。
开发环境要求
在开始运行示例项目之前,请确保开发环境满足以下要求:
环境要求 | 说明 |
---|---|
JDK 版本 | 1.8.0 及以上版本 |
Android API 版本 | API 21、Android Studio 5.0 及以上版本 |
CPU架构 | ARM 64、ARM V7 |
IDE | Android Studio |
其他 | 依赖 Androidx,不支持 support 库。 Android 系统 4.3 及以上版本的真机。 |
前提条件
请确认您已完成以下操作:
运行示例项目
-
在线 K 歌的示例源码仅供开发者接入参考,实际应用开发场景中,请结合具体业务需求修改使用。
-
若您计划将源码用于生产环境,请确保应用正式上线前已经过全面测试,以免因兼容性等问题造成损失。
-
克隆示例项目源码仓库至您本地工程。
-
开启 Android 设备的开发者选项,通过 USB 连接线将 Android 设备接入电脑。
-
通过 Android Studio 打开项目。在
AppConfig.java
文件中配置应用的 AppKey 和 AppSecret。private static final String APP_KEY = "your AppKey"; // 请填写应用对应的AppKey,可在云信控制台的”AppKey管理“页面获取 public static final String APP_SECRET = "your AppSecret"; // 请填写应用对应的AppSecret,可在云信控制台的”AppKey管理“页面获取 /** * 默认的BASE_URL地址仅用于跑通体验Demo,请勿用于正式产品上线。在产品上线前,请换为您自己实际的服务端地址 */ public static final String BASE_URL = "https://yiyong.netease.im/"; //云信派对服务端国内的体验地址
- 获取 App Key 和 App Secret 的方法请参见获取 App Key。
- BASE_URL 地址
https://yiyong.netease.im
为云信派对服务端体验地址,该地址仅用于体验 Demo,单次最大体验时长为1小时,请勿用于生产环境。 - 在线 K 歌场景暂不支持海外。
-
在 Android Studio 中,单击 Sync Project with Gradle Files 按钮,同步工程依赖。
-
运行工程。
-
开启 Android 设备的开发者模式和USB 调试功能。将 Android 设备连接到开发电脑,在弹出的授予调试权限对话框中,授予调试权限,具体步骤请参见在硬件设备上运行应用。
Android Studio 菜单栏中的 Running Devices 下拉列表选项,由 No Devices变为对应的设备名称。
此时表示设备已成功连接到 Android Studio。
-
单击 Run 按钮,编译并运行示例源码。
-
建议在真机上运行,不支持模拟器调试。
示例项目结构
模块 | 描述 |
---|---|
karaokekit-sample | App 壳工程,首页、K 歌入口等UI |
karaokekit-ui | K 歌业务 UI 组件 |
karaokekit-ui结构:
├── NEKaraokeUI.java # KaraokeUI入口
├── NEKaraokeUIConstants.java # 常量
├── activity
│ ├── AppStatusConstant.java # App状态常量
│ ├── AppStatusManager.java # App状态管理
│ ├── BaseActivity.java # Activity基础类
│ └── KaraokeRoomActivity.java # Karaoke房间类
├── adapter
│ ├── BaseAdapter.java #Adapter基类
│ ├── BaseViewHolder.java # ViewHolder基类
│ ├── OrderAdapter.java # 点歌列表适配器
│ ├── OrderLoadMoreDecorator.java # 加载更多
│ └── OrderedAdapter.java # 已点歌曲列表适配器
├── chatroom
│ ├── ChatMessageSpannableStr.kt # 聊天室消息文本管理
│ ├── ChatRoomMsgCreator.kt # 聊天室消息构造器
│ └── VerticalImageSpan.kt # 自定义ImageSpan
├── dialog
│ ├── ArrangeMicroDialog.kt # 主播端排麦列表弹窗
│ ├── AudienceArrangeMicroDialog.kt # 观众端申请上麦列表弹窗
│ ├── BaseBottomDialog.kt # 弹窗基类
│ ├── BaseBottomDialogFragment.java # 弹窗基类
│ ├── BaseDialogFragment.java #DialogFragment弹窗基类
│ ├── BottomBaseDialog.kt # Dialog基类
│ ├── CommonDialog.java
│ ├── GiftDialog.kt # 礼物弹窗
│ ├── OrderListFragment.java # 点歌列表
│ ├── OrderSongDialog.java # 点歌弹窗
│ ├── OrderSongViewModel.kt # 点歌ViewModel
│ └── OrderedListFragment.java # 已点歌曲列表
├── fragment
│ ├── BaseFragment.kt # Fragment基类
│ └── KaraokeRoomListFragment.java # Karaoke房间列表
├── gift
│ ├── GiftCache.kt # 礼物缓存
│ ├── GiftInfo.kt # 礼物模型
│ ├── GiftRender.kt # 礼物渲染
│ └── ui
│ └── GifAnimationView.kt # 礼物视图
├── helper
│ └── SeatHelper.java # 麦位帮助类
├── list
│ ├── ApplySeatListAdapter.kt # 麦位申请列表
│ ├── AudienceApplySeatListAdapter.kt # 麦位申请列表适配器
│ └── KaraokeListAdapter.java # 房间列表适配器
├── listener
│ ├── MyKaraokeListener.java # Karaoke事件监听
│ ├── NEKaraokeCallbackWrapper.java # 回调类
├── model
│ ├── ApplySeatModel.java # 申请麦位数据模型
│ ├── KaraokeOrderSongModel.java # 点歌模型
│ ├── KaraokeRoomModel.java # 房间模型
│ ├── LyricBusinessModel.java # 歌词业务模型
│ ├── OnSeatModel.java # 麦位信息
│ └── VoiceRoomSeat.java # 麦位信息
├── statusbar
│ └── StatusBarConfig.java # 状态栏配置
├── tone
│ ├── ToneContract.java # 音效协议类
│ ├── ToneDialogFragment.java # 音效弹窗
│ └── ToneViewModel.java # 音效ViewModel
├── utils # 工具类
│ ├── ClickUtils.kt # 处理点击事件
├── view
│ ├── ChatMsgListAdapter.kt # 聊天列表适配器
│ ├── ChatRoomMsgRecyclerView.kt # 聊天信息列表
│ ├── CircleImageView.java # 圆形ImageView
│ ├── ExTextView.java # 输入框
│ ├── FooterView.kt # 自定义上拉加载UI
│ ├── GridRadioGroup.java # 合唱选项选择器
│ ├── HeadImageView.java # 麦位头像
│ ├── HeaderView.kt # 自定义下拉刷新UI
│ ├── ISingViewController.java # 唱歌模块UI控制器
│ ├── LiveBaseAdapter.kt # 适配器基类
│ ├── NESkipPreludeView.kt # 跳过前奏UI
│ ├── NESoloSingView.kt # 独唱UI
│ ├── SeatView.java # 麦位UI
│ ├── SingingControlView.java # 房间页顶部视图
│ └── seat
│ ├── SeatAdapter.java # 麦位UI适配器
│ └── SeatViewHolder.java # 麦位UI ViewHolder
└── viewmodel
└── KaraokeRoomViewModel.kt # 房间ViewModel
此文档是否对你有帮助?