平时听歌,习惯差不多都是:打开歌单,点播放,一个人听完。挺好,但也总觉得少了点什么。
以前宿舍里一个人放歌,全屋一起听;朋友之间互相推歌,「这首你必须听一下」。那种边听边聊、你一首我一首的感觉,是一个人刷歌单给不了的。于是想:能不能在网页上做一个「同房同步听」的东西?
就做了听歌 Next。
它是什么
不是各播各的,而是一个房间、一条时间线。谁点的歌都进公共队列,谁进来都能对齐到当前进度。边听、边点歌、边聊天。
同步这块用服务端权威时钟管切歌和进度,客户端跟着对齐。中途进房、刷新、重连,也会追到正在播的位置。
怎么点歌
三种方式:
- 搜索点歌:搜歌名或歌手,入队。免费,不用登录。
- 智能点歌:说一句「随机几首」「某歌手几首」「适合夜里听的华语」,给候选,勾选后批量加入。
- 歌单点歌:按用户公开歌单拉出来,勾选或整单加入。
后两种适合「就想听点什么,但不想一首首搜」的时候。
房间里还能干嘛
浏览房间、随机进房、开公开房或密码房;有队列、置顶、投票切歌、聊天;空队列时房主还能设自动补歌。听歌和搜索点歌可不登录,开房和高级点歌再注册。
技术上大概是
Next.js + TypeScript,Socket.io 做实时,服务端时钟同步播放。智能点歌用大模型解析意图。
为什么发到这里
这是个周末折腾出来的独立小产品,还很糙,但「一起听」这件事我觉得好玩。欢迎来听一首、开个房,或者提提想法。