每日一博 | BBBUG 音乐聊天室的开发故事和架构设计
办公室有个小伙伴喜欢拿音响放歌,然而总放一些动次打次的广场舞DJ曲目,同事听了都头大,每次让人家切歌又不方便
于是某同事吐槽:“我们点啥你放啥?”
一天之后……
“张三你刚说放啥来着?”
“卧槽,我说的是刘德华的17岁,你这放的是谁的版本?”
“17岁QQ音乐要会员,放不了。” ……
我实在看不下去了,要不写一个点歌平台?
说干就干,第一版俩小时搞定:
一个点歌端,爬虫爬各大平台,包括一些VIP歌曲也给爬下来,只能搜索,点歌。
一个导播端,可以看大伙点了什么歌,导播端可以插队播放,删除。
好,上线。
两天后……
老板:“卧槽你们当办公室KTV呢?开音响听歌???”
好吧,所有人默默带上了耳机,但点歌端不能播放音乐,只能点歌,这一版宣告凉凉。
……
那就升级吧:
这一版,不区分点歌端和导播端,所有端都一样,做一个共享队列,大伙点,大伙自己带耳机听。
一天后……
“你能不能让大家听到的歌进度保持一致?我还在听上一首,他们先进去的都已经自动播下一首了……”
OK,继续升级,加歌曲同步。
好家伙这一次,跟KTV没啥区别了。
这一版有点意思,还加上了“送啤酒”这个小互动,是不是更像KTV了?
好吧我承认,这种小互动貌似没什么用,于是后来的版本掐掉了。
然而好景不长:
“大厅这群人有毒吧?跟五条人杠上了?”
“我实在是不敢恭维在座各位的歌单”
“这都点的什么玩意歌啊……”
“Mojito我实在是听得要吐了……”
好吧,那就安排,自己开房间听歌。
于是有了多房间的版本,每个人都可以创建自己的房间,听自己的歌。
顺便加上一个二级域名和独立域名的绑定功能,于是有了下面的设计图:
这就很棒了,大伙都可以在大厅一起听,也可以去自己房间里点歌听。
好好好景不长,需求又来了~
“自己的房间,能不能不点歌,自动播放自己点过的歌?”
安安安排!
那就来一个电台模式吧,设置了就自动播放自己的歌,有人点歌的话让他排队吧。
这下可以了吧?
安安稳稳听歌一周后……
“好无聊啊,光听歌,能让我听听相声小品吗?”
安安安安安排!
爬谁呢,就蜻蜓FM吧。
上线了小说故事模式……
好好好好好景还是不长
“这个UI好丑啊,能换换吗?”
我也这么觉得,那就改吧,于是改成了这样
“白色是不是太晃了,出个暗黑模式呗?”
“我TM……”
安安安安安安安排!
感觉还挺棒,
本以为故事到这里就基本结束了,然而,嗯。
“网页好烦人啊,能出个Windows客户端吗?”
安安安安安P,等下,C#我快忘干净了。
花俩小时回忆了下C#,又花俩小时学习了下
WTF……
安安安安安安安排!
于是有了这个Windows客户端
好家伙,写完了,发布了,实际统计了下使用数据,使用人数不超过3,WTF????
“你这大部分是程序员在用,要不出个vscode的插件呗。”
我……
故事快结束了吗?
天真。
“出个APP吧!”
我……
好,安排,就拿Uniapp整一套吧。
体验还挺不错,不过因为音乐版权问题,这里就没上架AppStore。
“App下载好麻烦,整一套小程序吧?”
安安安安安安安安安安安安排!
整!
故事到这里就基本结束了,心累。
一口气把所有端的代码都开源了,欢迎有兴趣的小伙子给点点小星星呀。
Github https://github.com/HammCn
Gitee https://gitee.com/bbbug_com
顺便附上整体的架构设计图

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
DevEco Studio 2.1 Beta3 发布,HarmonyOS 的配套 IDE
2021年3月,DevEco Studio 迎来更新,2.1 Beta3 版本发布。 HUAWEI DevEco Studio(以下简称 DevEco Studio)是面向华为终端全场景多设备的一站式集成开发环境 (IDE),为开发者提供工程模板创建、开发、编译、调试、测试、发布等 E2E 的 HarmonyOS 应用开发服务。通过使用 DevEco Studio,开发者可以更高效地开发具备 HarmonyOS 分布式能力的应用,进而提升创新效率。 下面看看此版本的更新亮点。 一、预览器新增双向预览功能 在 HarmonyOS 应用开发过程中,开发者可通过点击“Previewer”查看应用的 UI 界面效果。当开发者发现 UI 界面的布局显示不符合预期时(eg:控件的宽度不符合设定值、控件不显示等),需要逐一排查 UI 界面中布局或控件的异常。 为了提高排查的效率,DevEco Studio 2.1 Beta3 在已有的“实时预览”和“动态预览”基础上,全新解锁了双向预览功能。 实时预览:只要在布局文件中保存了修改的源代码,在预览器中就可以实时查看布局效果。 动态预览:在预览器界面,可...
- 下一篇
MGit —— 百度开源基于 Git 的多仓库管理工具
MGit 是一款基于 Git 的多仓库管理工具,可以安全、高效地管理多个 Git 仓库,适合于在多个仓库中进行关联开发的项目,实现批量的版本管理功能,提高 Git 操作的效率,避免逐个执行 Git 命令带来的误操作风险。 主要特性 易用的命令:封装 Git 命令,命令和参数均由 Git 衍生而来,会使用 Git 就可以成本低上手 MGit。 直观高效的执行命令:提供图表化的结果展示,开发者可以快速查看命令在多个仓库的执行结果; 多线程并发执行多仓库命令,通过仓库缓存机制提高仓库的拉取效率。 安全的执行命令:在执行命令前对多仓库状态进行安全检查:分支是否异常,工作区是否未提交代码等; 对 .git 进行托管与 Git 工作区分类,避免误删丢失改动或提交; 执行存在风险的操作时,会给与风险操作提示,避免误操作。 方便扩展:支持加载 ruby-gem 包作为插件,gem 包名格式m-git-${suffix}和mgit-${suffix}快速的扩展 MGit 的命令,增加自定义命令,扩展已有命令的功能; 提供类似git hook的 hook 点,方便开发者实现自定义逻辑。 MGit 架构设计...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库