前天晚上我和朋友在群里讨论,他开发了一个点歌台,易语言写的,在 B 站上通过直播的方式来播放,通过弹幕点歌。
然后我就有了个想法,做一个网页的点歌台,然后也可以做类似于弹幕这样的实时交流功能。
经过一个晚上的开发,我做出了这个项目 SyncMusic,基本上实现了和他的点歌台一样的功能,唯一不同的地方就是我的点歌台是在网页上播放音乐的,而不是直播。

项目地址: https://github.com/kasuganosoras/SyncMusic
代码写了很详细的注释,非常适合新人学习 PHP WebSocket 应用程序开发。
功能特性
- 支持在线点歌
- 支持多人实时聊天
- 支持投票切掉当前音乐
- 没人点歌的时候可以随机播放音乐
- 管理员可切歌
- 管理员可删除指定音乐
- 管理员可将指定音乐提前播放
- 管理员可禁言指定用户
- 美观的界面 (Material Design)
- 无需登录,任何人都可以点歌
- 无需数据库,由 Swoole 内存表储存数据
有个地方就是获取音乐时间长度是用了 Python,原本我是想直接用 PHP 来获取的,但是有点麻烦,还要导入一个单独的库,想了想还是用最简单的办法来解决,于是就用 Python 整了个简单的脚本。
如果你有更好的读取音乐时间的实现方法,欢迎提 Pr 或通过 Issues 告诉我。
在线体验
如果你只是想体验一下或者单纯听歌,可以访问我的 Demo:https://music.tql.ink/
还请 dalao 们合理玩耍,不要点一些奇奇怪怪或者很难听的音乐,谢谢了~
都是在疯狂切歌