最近折腾博客的时候,顺手给页面加了一个侧边栏音乐播放器。最开始只是想做点“有氛围感”的东西,但真正开始实现后,发现里面还有不少细节问题。
最先遇到的其实不是播放器本身,而是音乐文件。很多个人站点会直接把 mp3 放在服务器或者对象存储里,但这种做法多少会有点版权风险。尤其是国外服务器、CDN 或云存储,被 DMCA 投诉或者被人举报后,轻则文件失效,重则整个存储桶被警告。
后来尝试改成通过网易云音乐外链解析接口动态获取播放地址。这样播放器本身并不直接存储音频文件,而是在播放时再获取真实链接。至少对于个人博客来说,会比自己托管大量音乐文件省事很多。
另一个比较影响体验的问题,是页面跳转。传统博客每点击一次链接,整个页面都会刷新一次,音乐自然也会跟着中断。那种“刚进入状态突然断掉”的感觉其实挺破坏沉浸感。
于是后来干脆把页面切换也一起改成 Ajax。点击站内链接时,只动态替换内容区域,不重新加载整个页面。播放器本身始终存在于页面外层,因此音乐可以持续播放,不会因为切换文章或者返回首页而中断。
实际做完之后,整个网站的感觉会变得很不一样。以前网页更像是一页一页独立打开的文档,而现在更接近一种“持续存在的空间”——背景、音乐和氛围都不会因为一次跳转突然消失。
虽然本质上只是 Ajax + 音乐播放器的组合,但加上背景切换、玻璃拟态这些细节之后,博客会比传统静态页面多出一种连续的沉浸感。有时候甚至会觉得,它已经不太像“网页”,而更像一个可以停留的环境。
给博客加了个不会中断的音乐播放器
尝试给博客做一个可持续播放的侧边栏音乐播放器,通过 Ajax 实现页面切换不刷新,从而避免音乐在跳转页面时中断。同时使用网易云音乐解析接口动态获取播放链接,避免将 mp3 文件直接存放在服务器或对象存储中带来的 DMCA 与版权举报风险。