1、本地接收音乐信息
本地接收一个对象(或者音乐ID)数组。
从数据库获取到时,可以按照音乐ID升序/降序。
然后前端将数组顺序打散成随机数组。
(【参考链接】JS随机打乱数组)
从数组第一项开始播放歌曲。
每播放一首歌曲,就从列表移除第一项。
2、服务器记录前端播放记录
同时,AJAX把正在播放的歌曲ID传给服务器。
服务器可以在USER表(或者HISTORY表)里新建字段,记录歌曲ID播放记录。
如可以用逗号隔开。
3、用户再次打开,继续随机播放
当用户还未循环完毕当前数组,就关闭页面后。
用户再次打开页面的话。
服务器可以返回处理(筛选)后的数组。也可以前端进行筛选。
再次打乱顺序,继续播放。
另一种选择
也可以考虑:播放完一首歌曲后,直接把余下的数组(的music_id)传到服务器。
这样不用做额外的转化。还能保证上一次的随机数组不变。
但这样做,每次就传输了太多(没有用)的数据。
大家可以根据实际情况选择。
以上是我自己做项目的一点思路。欢迎各位提出意见。