前天晚上我和朋友在群里讨论,他开发了一个点歌台,易语言写的,在 B 站上通过直播的方式来播放,通过弹幕点歌。
然后我就有了个想法,做一个网页的点歌台,然后也可以做类似于弹幕这样的实时交流功能。
经过一个晚上的开发,我做出了这个项目 SyncMusic,基本上实现了和他的点歌台一样的功能,唯一不同的地方就是我的点歌台是在网页上播放音乐的,而不是直播。
项目地址: https://github.com/kasuganosoras/SyncMusic
代码写了很详细的注释,非常适合新人学习 PHP WebSocket 应用程序开发。
有个地方就是获取音乐时间长度是用了 Python,原本我是想直接用 PHP 来获取的,但是有点麻烦,还要导入一个单独的库,想了想还是用最简单的办法来解决,于是就用 Python 整了个简单的脚本。
如果你有更好的读取音乐时间的实现方法,欢迎提 Pr 或通过 Issues 告诉我。
如果你只是想体验一下或者单纯听歌,可以访问我的 Demo:https://music.tql.ink/
还请 dalao 们合理玩耍,不要点一些奇奇怪怪或者很难听的音乐,谢谢了~
1
azssjli 2019-11-07 14:59:51 +08:00
你觉得你说了布点奇怪的歌我就会不点了吗,我就点 XD
|
2
KasuganoSoras OP @azssjli #1 其实还在测试的时候我们群里的人就点了一大堆奇奇怪怪的歌了 23333
|
3
BreadKiller 2019-11-07 15:09:42 +08:00 1
虾米以前网页版有 loop,后来有自己的直播间可以让朋友进来跟听(就是我放什么别人进来的一样听什么);
现在虾米 app 有趴间,功能上和 loop 差不多,可以有三个人上台轮流放歌,好听就给赞,不好听就踩(类似投票机制); 上面的都可以文字交流,网页的 loop 和直播间现在都没了,只剩下 app 的趴间。 不同点就是这些都不是点歌机制,播放什么歌决定权在一个或几个人手上而已,但是可以自己开一个趴间(直播间)放自己的歌然后让别人来一起听一起交流。 |
4
sobigfish 2019-11-07 15:25:14 +08:00 1
可以弄个小程序 点歌, 给咖啡厅 /餐吧 这些用
VIP 可以点歌置顶什么的 😂 |
5
KasuganoSoras OP @sobigfish #4 想法不错,至于 VIP 这个就需要接入用户系统了,这个以后再考虑吧
|
6
Uyuhz 2019-11-07 15:37:47 +08:00
看起来挺好玩的...不过刚才点一首 https://music.163.com/#/song?id=515143072 一直失败换了一首又好了...然后我才发现居然还有非客户端不能播放的歌...
|
7
Opportunity 2019-11-07 15:43:09 +08:00
@sobigfish KFC 现在就有这个功能
|
8
luckyrayyy 2019-11-07 15:43:59 +08:00
有点意思
|
9
luckyrayyy 2019-11-07 15:46:12 +08:00
我怎么看不到别人说话,自己打的字也没看到在哪
|
10
KasuganoSoras OP @Uyuhz #6 @luckyrayyy #9 刚刚服务器有 bug,修好了
|
11
ZredoC 2019-11-07 16:03:02 +08:00
👍👍👍
|
12
SuperM 2019-11-07 16:51:48 +08:00
支持下,感觉蛮好玩的
|
13
Uyuhz 2019-11-07 17:06:27 +08:00
@KasuganoSoras 我说的 515143072 点歌失败的那个好像是网易云的问题,不是你的问题😂
|
14
lmx111aaa 2019-11-07 17:23:58 +08:00
讲道理,就像一个人安安静静的听歌
|
15
KasuganoSoras OP @lmx111aaa #14 其实最初的想法也是安静听歌。。只是人一多起来就欢乐了 2333
|
16
moonrailgun 2019-11-07 18:26:00 +08:00
高中生可太厉害了
|
17
Ultraman 2019-11-07 18:35:07 +08:00 via Android
lost river 哪位给安排上🙃
|
18
lxk11153 2019-11-07 19:05:05 +08:00
"点歌台,易语言写的" 叫啥?
|
19
yoqu 2019-11-07 19:11:00 +08:00
👍👍👍
|
20
KasuganoSoras OP |
21
MyFaith 2019-11-07 20:21:00 +08:00
之前在斗鱼某点歌直播间,点了几首首 2 小时起步的
|
22
wispx 2019-11-07 20:27:07 +08:00
6666,不错
|
23
sdytman 2019-11-07 20:31:00 +08:00 via iPhone
这个 ui 设楼主自己写的?
|
24
KasuganoSoras OP @sdytman #23 嗯,基于 Material Design 设计,除了这个背景模糊效果是参考 MKOnlineMusicPlayer 改的,其他都是我自己写的。
|
25
zuokanyunqishi 2019-11-07 22:33:51 +08:00 via Android
厉害厉害👍
|
26
nobt 2019-11-07 23:37:19 +08:00 via iPhone
为啥我 safari 没声音
|
28
FEDT 2019-11-08 01:01:27 +08:00 via iPhone
一晚上,太强了👍🏻
|
29
hanhuoer 2019-11-08 01:08:27 +08:00
哈哈,刚去逛了逛,厉害👍
|
30
crab 2019-11-08 01:11:04 +08:00
虾米 loop
|
31
miaomiao888 2019-11-08 03:47:46 +08:00
想到以前的多米 DJ,谁都可以上台当 DJ 放自己喜欢的音乐然后一起听
|
32
Linon 2019-11-08 04:58:25 +08:00 via Android
一定要设置违禁词,国歌什么的
|
33
longkas 2019-11-08 08:47:48 +08:00 via Android
一晚上,太牛逼了,我弄了个放电影直播间大半年
|
34
codingBug 2019-11-08 09:32:30 +08:00
我想问问,要用耳机吗?
|
35
SmallNing 2019-11-08 09:33:48 +08:00
感觉 挺好玩的 ~
|
36
SmallNing 2019-11-08 09:50:48 +08:00
要是有 app 就好啦 ~ 再也不用找歌曲听了
|
37
qping 2019-11-08 09:50:50 +08:00
音乐的源用的哪里?
|
39
BuilderQiu 2019-11-08 09:56:30 +08:00
如果大部分都挂机听歌...这 30%切歌就切不动了..
|
40
imdong 2019-11-08 10:19:18 +08:00
真·云听歌
点啥听啥,佛系随缘。 |
41
aalikes95 2019-11-08 10:42:48 +08:00
不错,相当的爽
|
42
dinjufen 2019-11-08 10:49:19 +08:00
题主高中生吗?我自愧不如。。
|
43
wsbnd9 2019-11-08 11:24:10 +08:00
切歌太难了
|
44
cwjokaka 2019-11-08 12:01:42 +08:00
有趣,别人的一晚上系列
|
45
rykka 2019-11-08 12:30:50 +08:00 via Android
歌从哪里来?
|
46
keith1126 2019-11-08 12:48:00 +08:00
做的很不错啊~
|
47
7654 2019-11-08 12:54:57 +08:00
SSL 810 端口的服务我这里的网络不支持。so sad
|
48
gzzchh 2019-11-08 13:11:40 +08:00 via Android
聊天内容要审查哦,不然容易查水表
|
49
killerv 2019-11-08 13:30:36 +08:00
可以的,挺好玩
|
50
zerozz 2019-11-08 13:45:54 +08:00
大佬的一晚上系列,体验了一下,挺好玩,666
|
51
Rekkles 2019-11-08 14:19:53 +08:00
6666
|
52
xianxiaobo 2019-11-08 14:30:11 +08:00
建议像直播放电影里面那样的积分制播放下一首歌曲,切歌太难了,更不要说连续切歌了。
|
53
haozes 2019-11-08 14:39:21 +08:00
不错不错
|
54
caryqy 2019-11-08 14:41:13 +08:00
和你朋友说下,直播弹幕点歌的注意一些歌是不能放的,不然直播间就没了
|
55
Donne 2019-11-08 14:42:36 +08:00
一晚上弄出来,我滴个龟龟
|
56
NotNil1 2019-11-08 14:55:33 +08:00
厉害厉害,好好玩啊
|
57
ksc010 2019-11-08 15:08:24 +08:00
可以考虑增加“频道”功能
将有不同音乐品味的人区分开来 |
58
ksc010 2019-11-08 15:10:47 +08:00
feature2:
待播放列表 直接可以投票 超过一定票数自动跳过不播放 |
59
hideonwhere 2019-11-08 15:14:04 +08:00
曲库太少了吧
|
60
IMengXin 2019-11-08 15:25:50 +08:00
为啥我点的所有歌都是 未搜索到此歌曲
|
61
archknight 2019-11-08 15:30:48 +08:00
都是在疯狂切歌
|
62
senher 2019-11-08 15:33:29 +08:00
这些歌都是哪来的?
|
63
cont 2019-11-08 15:43:01 +08:00
我点什么歌都是提示“未搜索到此歌曲”
|
64
natforum 2019-11-08 15:45:54 +08:00
|
65
11ssss 2019-11-08 15:46:53 +08:00
不是曲库少 是 ip ban 了
|
66
Xatoi 2019-11-08 17:00:29 +08:00 via iPhone
版权灾难
|
67
richard1122 2019-11-08 17:08:31 +08:00
之前做过一个类似的,在处理用户主动切、用户结束后切、投票这些问题上有一些实践,贴一段代码供参考:
```c# private void CheckShouldForwardCurrentSong() { var userList = list.UserList; var downVoteUserCount = downvoteUsers.Intersect(userList).Count; var undeterminedCount = userList.Except(downvoteUsers).Except(finishedUsers).Count(); var connectedUserCount = userList.Select(it => socketManager.IsConnected(it)).Count(); if (!list.IsPlaying || downVoteUserCount >= QueryForceForwardCount(connectedUserCount) || undeterminedCount == 0) { ShouldForwardNow(); } else if (undeterminedCount <= connectedUserCount * 0.5) { if (finishTimeoutTimer != null) return; finishTimeoutTimer = new Timer(ShouldForwardNow, null, 5 * 1000, Infinite); } } private static int QueryForceForwardCount(int total) { return Convert.ToInt32(Math.Ceiling((double)total / 2)); } ``` 主要是需要考虑网络不好的用户可能还没听完,所以有一个 5 秒的缓冲期。 用户分成三类: * 主动切:downVoteUserCount * 已结束当前歌曲:finishedUsers * 没有态度:undeterminedCount |
68
richard1122 2019-11-08 17:10:03 +08:00
|
69
mrcuya 2019-11-08 17:36:36 +08:00
我之前实现了一个小程序版的,虾米也是抄袭国外的 turntable。只是个人小程序类目限制不让上,最后就放在那边了。
|
70
a194259440 2019-11-08 17:42:57 +08:00
设置昵称老是失败:设置昵称 XX 有提示不能写空格 设置昵称 XX 又当作消息发送了
|
71
a194259440 2019-11-08 17:47:40 +08:00
然后,收集一下被切过的歌吧,设置黑名单~~~~
|
72
Yien 2019-11-08 18:04:08 +08:00 via iPhone
一晚上🐂🍺
|
73
54xavier 2019-11-08 19:41:54 +08:00
听了一下午的歌,来留个言,不错不错 github start 了
|
74
zpfhbyx 2019-11-08 19:43:52 +08:00
老哥,你 cxk-ball 是认真的么..
|
75
squallsdjl 2019-11-09 02:58:42 +08:00
话说。。。这些歌曲会遇到版权问题么。。,TAT
|
76
MagicBoy 2019-11-09 11:03:45 +08:00
楼主高中生?冒昧问一下楼主多大了
|
77
pbrluoji 2019-11-09 15:09:44 +08:00
听不到声音。。。。。
|
78
pbrluoji 2019-11-09 15:16:25 +08:00
桌面 chrome 77.0 版本听不到声音,edge 可以
|
79
JssDream 2019-11-09 16:03:00 +08:00
感觉有点东西,很有意思!!可以多加些图片,表情什么的!!
|
80
matsuijurina 2019-11-09 16:10:19 +08:00 via Android
"半天撸了一个站,我才初三请轻赞。" v 站传统怎么楼上好多人都不记得了
|
81
rekulas 2019-11-09 22:02:45 +08:00
|
82
guanhui07 2019-11-10 12:27:56 +08:00
蛮好玩的
|
83
jemyzhang 2019-11-11 09:42:00 +08:00
赞一下, 挺有意思,听听大家平时都听什么歌
|
84
doveyoung 2019-11-11 11:48:44 +08:00
在线 16 人,正在播放好汉歌
|
85
dogepar 2019-11-11 16:41:03 +08:00
挺帅!
|
86
DavidG 2019-11-14 11:10:22 +08:00
点了潇洒走一回 潜伏的爱 大花轿 走四方等经典歌曲,感觉非常满意
|
87
cydian 2019-11-15 01:12:57 +08:00 via Android
你的 API 里面添加了 netease 的 cookie ? 我打开了看下是 mkplayer 但是为什么不能用 QQ ?
|
88
nazznazzz 2019-11-15 20:35:45 +08:00
挺好玩的,不过能按喜好分房间就好了
|
89
evilnull 2019-12-04 16:35:17 +08:00
@KasuganoSoras 证书过期了,而且启用了 HSTS,没法忽略
|
90
tmsdy0404 2019-12-07 11:51:32 +08:00
已经成功架在办公室内网。。。最后还是弄了个虚拟机装。
|
91
xcstream 2019-12-26 18:49:40 +08:00
哇
|