BBBUG 音乐聊天室的开发故事和架构设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Hamm
V2EX    分享创造

BBBUG 音乐聊天室的开发故事和架构设计

  •  5
     
  •   Ham 2021-05-13 10:31:28 +08:00 3159 次点击
    这是一个创建于 1614 天前的主题,其中的信息可能已经有所发展或是发生改变。

    办公室有个小伙伴喜欢拿音响放歌,然而总放一些动次打次的广场舞 DJ 曲目,同事听了都头大,每次让人家切歌又不方便

    于是某同事吐槽:“我们点啥你放啥?”

    一天之后……

    “张三你刚说放啥来着?”

    “卧槽,我说的是刘德华的 17 岁,你这放的是谁的版本?”

    “17 岁 QQ 音乐要会员,放不了。” ……

    我实在看不下去了,要不写一个点歌平台?

    说干就干,第一版俩小时搞定:

    一个点歌端,爬虫爬各大平台,包括一些 VIP 歌曲也给爬下来,只能搜索,点歌。

    一个导播端,可以看大伙点了什么歌,导播端可以插队播放,删除。

    好,上线。

    两天后……

    老板:“卧槽你们当办公室 KTV 呢?开音响听歌???”

    好吧,所有人默默带上了耳机,但点歌端不能播放音乐,只能点歌,这一版宣告凉凉。

    ……

    那就升级吧:

    这一版,不区分点歌端和导播端,所有端都一样,做一个共享队列,大伙点,大伙自己带耳机听。

    image.png

    一天后……

    “你能不能让大家听到的歌进度保持一致?我还在听上一首,他们先进去的都已经自动播下一首了……”

    OK,继续升级,加歌曲同步。

    image.png

    好家伙这一次,跟 KTV 没啥区别了。

    这一版有点意思,还加上了“送啤酒”这个小互动,是不是更像 KTV 了?

    好吧我承认,这种小互动貌似没什么用,于是后来的版本掐掉了。

    然而好景不长:

    “大厅这群人有毒吧?跟五条人杠上了?”

    “我实在是不敢恭维在座各位的歌单”

    “这都点的什么玩意歌啊……”

    “Mojito 我实在是听得要吐了……”

    好吧,那就安排,自己开房间听歌。

    于是有了多房间的版本,每个人都可以创建自己的房间,听自己的歌。

    顺便加上一个二级域名和独立域名的绑定功能,于是有了下面的设计图:

    image.png

    这就很棒了,大伙都可以在大厅一起听,也可以去自己房间里点歌听。

    好好好景不长,需求又来了~

    “自己的房间,能不能不点歌,自动播放自己点过的歌?”

    安安安排!

    那就来一个电台模式吧,设置了就自动播放自己的歌,有人点歌的话让他排队吧。

    这下可以了吧?

    安安稳稳听歌一周后……

    “好无聊啊,光听歌,能让我听听相声小品吗?”

    安安安安安排!

    爬谁呢,就蜻蜓 FM 吧。

    上线了小说故事模式……

    好好好好好景还是不长

    “这个 UI 好丑啊,能换换吗?”

    我也这么觉得,那就改吧,于是改成了这样

    image.png

    “白色是不是太晃了,出个暗黑模式呗?”

    “我 TM……”

    安安安安安安安排!

    image.png

    感觉还挺棒,

    本以为故事到这里就基本结束了,然而,嗯。

    “网页好烦人啊,能出个 Windows 客户端吗?”

    安安安安安 P,等下,C#我快忘干净了。

    花俩小时回忆了下 C#,又花俩小时学习了下

    WTF……

    安安安安安安安排!

    于是有了这个 Windows 客户端

    image.png

    好家伙,写完了,发布了,实际统计了下使用数据,使用人数不超过 3,WTF ????

    “你这大部分是程序员在用,要不出个 vscode 的插件呗。”

    我……

    image.png

    故事快结束了吗?

    天真。

    “出个 APP 吧!”

    我……

    好,安排,就拿 Uniapp 整一套吧。

    image.png

    体验还挺不错,不过因为音乐版权问题,这里就没上架 AppStore 。

    “App 下载好麻烦,整一套小程序吧?”

    安安安安安安安安安安安安排!

    整!

    image.png

    故事到这里就基本结束了,心累。

    一口气把所有端的代码都开源了,欢迎有兴趣的小伙子给点点小星星呀。

    Github https://github.com/HammCn

    Gitee https://gitee.com/bbbug_com

    顺便附上整体的架构设计图

    image.png

    体验一下 www.bbbug.com

    28 条回复    2021-05-21 08:49:45 +08:00
    silencelixing
        1
    silencelixing  
       2021-05-13 10:32:57 +08:00
    来了
    Hamm
        2
    Hamm  
    OP
       2021-05-13 10:34:58 +08:00
    learningman
        3
    learningman  
       2021-05-13 10:37:08 +08:00 via Android
    隔壁 100 万警告
    Hamm
        4
    Hamm  
    OP
       2021-05-13 10:38:49 +08:00
    @learningman:)不要怂
    HappyOneP
        5
    HappyOneP  
       2021-05-13 10:39:05 +08:00
    牛逼 666
    pakro888
        6
    pakro888  
       2021-05-13 10:41:24 +08:00 via Android
    厉害
    mingsz
        7
    mingsz  
       2021-05-13 10:41:49 +08:00
    Hamm
        8
    Hamm  
    OP
       2021-05-13 10:43:46 +08:00
    @mingsz
    @pakro888
    @HappyOneP

    感谢大哥们的支持
    hjj925189690
        9
    hjj925189690  
       2021-05-13 11:14:04 +08:00
    大佬可以安排一下 google 浏览器插件吗
    myderr
        10
    myderr  
       2021-05-13 11:15:19 +08:00
    厉害了大佬,考虑谷歌浏览器插件不,然后能当前页面加载歌词那种
    Webpoplayer
        11
    Webpoplayer  
       2021-05-13 13:42:40 +08:00
    前段时间刚在 v 站看到彦祖的发帖,觉得挺好玩
    这几天断断续续的都有在用,挺好
    然后哈哈哈,刚看完隔壁跟 yk 的故事。。
    果然就看到有人评论了,哈哈哈哈
    Hamm
        12
    Hamm  
    OP
       2021-05-13 14:00:33 +08:00
    Hamm
        13
    Hamm  
    OP
       2021-05-13 14:00:50 +08:00
    @Webpoplayer 原帖来一个呀
    idoas
        14
    idoas  
       2021-05-13 14:41:03 +08:00
    缺个 Mac 版本,哈哈哈
    coderJie
        15
    coderJie  
       2021-05-13 14:45:22 +08:00
    @idoas +1,程序员都用 mac,来个 mac 版吧
    Webpoplayer
        16
    Webpoplayer  
       2021-05-13 16:00:41 +08:00
    Webpoplayer
        17
    Webpoplayer  
       2021-05-13 16:02:43 +08:00
    caryqy
        18
    caryqy  
       2021-05-13 16:19:32 +08:00
    创意不错
    turi
        19
    turi  
       2021-05-13 23:19:25 +08:00
    这东西不错
    musi
        20
    musi  
       2021-05-14 06:03:52 +08:00 via iPhone
    这玩意儿自己用用就算了,
    分享出来要么音乐公司要么不管,要么下架接口,要么给你发律师函。
    没准 v2 上还有内部的人
    bsulike
        21
    bsulike  
       2021-05-14 09:33:33 +08:00
    好家伙,这么猛
    korozas
        22
    korozas  
       2021-05-14 11:05:25 +08:00
    这就是大佬吗?这么猛
    Hamm
        23
    Hamm  
    OP
       2021-05-15 23:21:04 +08:00 via iPhone
    @musi 问题不大,找个合适的机会,掐掉第三方音源,已经支持了自定义 mp3 歌曲上传
    ZnBDPang
        24
    ZnBDPang  
       2021-05-15 23:40:31 +08:00
    大佬的项目已 star,很强
    xrr2016
        25
    xrr2016  
       2021-05-17 16:03:45 +08:00
    keller
        26
    keller  
       2021-05-19 15:16:02 +08:00
    可以了解一下 discord 语言频道的音乐机器人,可以通过指令控制歌单、点歌、切歌等等操作。
    asLw0P981N0M0TCC
        27
    asLw0P981N0M0TCC  
       2021-05-19 16:09:50 +08:00
    这都是什么牛人啊
    RLinux
        28
    RLinux  
       2021-05-21 08:49:45 +08:00
    太棒了~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3005 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:23 PVG 21:23 LAX 06:23 JFK 09:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86