唱片墙
将喜欢的网易云音乐与 Apple Music 歌单、专辑陈列成一面封面墙。点击封面即可展开曲目和播放器,支持手机与桌面、方形唱片与竖版海报、系统深浅色。
界面预览
歌单封面墙(桌面):

点击封面后展开曲目与播放器:

快速开始
- 安装并启用「唱片墙」,在插件设置中选择展示模式并保存。
- 访问 https://你的域名/music 。
- 在 Halo 控制台 → 菜单 → 新增自定义链接中,名称填写“唱片墙”,链接地址填写 /music。
- 保存菜单后,访客即可从博客导航进入音乐墙。
无需另外创建页面,也无需修改主题文件。插件不会自动改动你的菜单。
环境要求
Halo 2.27.0 及以上,使用 Halo 提供的 Java 21 环境。无需额外部署 Node.js、数据库或音乐 API 服务。服务器与访客浏览器需要能够访问相应音乐平台。
单个歌单 → 逐曲封面墙
在“页面”设置中选择“单个歌单 → 每首歌曲的专辑封面墙”,填写完整的公开歌单链接,然后设置标题、简介、封面比例和返回博客文字,勾选“公开音乐墙”并保存。
网易云示例:
https://music.163.com/#/playlist?id=2021488376
Apple Music 示例:
https://music.apple.com/us/playlist/todays-hits/pl.f4d106fed2bd41149aaacabb233eb5eb
插件按歌单顺序展示每首歌所属专辑的封面,一首歌曲对应一张封面;同一专辑的多首歌曲保留各自的位置。点击封面时,展开的列表自动定位到对应歌曲。
网易云最多读取 1000 首,Apple Music 仅展示平台公开返回的曲目。公开曲目数量少于总数时,页面会说明。
自选专辑 / 歌单陈列
- 在“页面”中选择“自选专辑 / 歌单陈列”。
- 切换到“歌单与专辑”,逐项添加完整的公开歌单或专辑链接,最多 60 项。
- 可只添加专辑、只添加歌单,也可以混排。
- 按需填写标题、副标题、介绍,并从附件库选择自定义专辑封面或海报。
- 勾选该项“展示”并保存;未填写的标题与封面会尝试自动读取平台公开信息。
网易云专辑示例:https://music.163.com/album?id=61090
Apple Music 支持 music.apple.com 下带地区的 album / playlist 完整分享链接。请先在浏览器展开 App 的短链接。不支持私密歌单,不自动展开短链接;自选陈列请添加专辑或歌单,而非单曲。
播放与平台限制
网易云单曲优先使用轻量的原生音频播放器。无公开音源、媒体错误或等待超过 8 秒时自动尝试官方播放器,也可手动切换。
专辑、整份歌单及 Apple Music 使用官方嵌入播放器。自选陈列展开官方播放器的曲目列表;单个歌单模式额外提供插件内逐曲列表。
能否播放、试听或完整收听,由平台版权、地区、登录和订阅状态决定。部分歌曲无法匿名播放,切换官方播放器也不保证可播。Apple Music 的嵌入播放同时取决于浏览器与平台登录支持;页面保留原站入口。
不需要填写网易云 Cookie、账号密码、Apple 开发者密钥。不绕过平台权限,不提供音频下载,也不缓存音频文件。
主题兼容
默认使用插件自带的独立页面、样式和脚本,不依赖主题组件或主题 CSS,因此不需要主题额外支持。博客切换主题后无需重新配置音乐墙;“返回博客”会回到当前主题首页。音乐墙不会自动套用各主题的顶部导航。
已在 Halo 2.27.0 的 Ying 1.2.0、Earth 1.15.3、Jyf 2.0.10 环境验证独立音乐页;这不是对应用市场全部主题版本的逐一认证。
主题若主动提供 music-wall.html 覆盖模板,需要保留 mw-* DOM 契约及插件资源引用;自行修改的覆盖模板由模板维护者适配。
缓存与轻量加载
- 封面原生懒加载,点击后才创建播放器,同时只保留一个播放器,收起后停止播放。
- 列表缓存约 15 分钟,过期后先展示已有数据,由访问请求触发后台刷新,无定时轮询。
- 上游短暂失败时,最多保留 7 天旧列表;确认变为私密的歌单会清除对应列表。
- 平台封面按图片去重,生成 200 / 400 / 600 像素衍生图;浏览器缓存 7 天并支持 ETag。
- 磁盘缓存上限 64 MiB,位于 Halo 工作目录的 plugins/music-wall/cache-v1,可删除重建。首次读取新歌单或生成封面可能较慢。
常见问题
/music 返回 404? 确认插件已启用、“公开音乐墙”已勾选,并检查反向代理与其他插件是否占用了 /music。
没有歌单或曲目不全? 确认链接完整、歌单公开、地区可访问,服务器能够访问平台。Apple Music 可能仅返回部分公开曲目,平台接口变化也可能影响读取。
有封面但播放不了? 元数据与播放权限不同。尝试官方播放器或原站入口,检查平台登录、订阅和地区限制。
为什么没有主题菜单? 插件提供独立页面以避免主题样式冲突。请在博客菜单中添加 /music 链接进入,再通过页面上的返回链接回到博客。
隐私、开源与版权
浏览封面墙会请求本站缓存图片;点击播放后,浏览器会连接相应音乐平台。音乐与封面的版权属于对应权利人。
插件采用 GPL-3.0 许可证,安装包包含使用说明与许可证,完整可构建源码 ZIP 随版本提供,不需要 GitHub。平台名称仅用于说明支持的链接和播放方式,不代表官方合作或授权。
