1724 字
4 分钟
一次音乐播放器的定制
2026-07-25

#Music #Web

[!TIP] 提示 有关音乐播放器的内容 请您直接跳转音乐播放器

原谅我前面的一堆废话 不想看的可以直接跳转!

初入茅庐 {#Start}#

Mizuki#

前几日 我开通了我的网站 (您可访问旧站) 开通之前 我就有许多定制的想法 (打造一个符合自己审美的网站) 于是我开始定制我的Mizuki 在定制了几天之后 上线了我的第一版

改圆角什么的就不说了 我一个个查找手改的 Mizuki的定制体验不是特别好 毕竟也是第一次让AI学网站 各部分的定制都有些阻碍 然后也是一天到晚除了吃饭睡觉都在赶网站 (是真的停不下来 因为改了一个地方另一个地方又有bug 时间过得也很快)

比如顶栏常驻 这个功能Gemini/Deepseek在Mizuki怎么写都写不出来 无奈败北

最后 我也是写出了几个自订的组件

分类以磁贴形式展示 磁贴可以长按替换为标签 各种工具栏现在被整合 占据空间更小

转换赛道 {#ReStart}#

然而这样的顶栏应该配合常驻 可Mizuki的模板 以 我的水平 无法成功修改

在看别的模板的时候 我看到了Firefly

Firefly#

Firefly 也是一个博客模板 并且这个模板自带顶栏常驻 且有更丰富的功能 我便准备迁移至Firefly

首先 我盯上了那个主题设置

控制面板 {#ControlPanel}#

原版的设置由三个Tab构成 而 樱花竟然单开了一个Tab 并且有着一堆开关控件(原有的设计做成直角就不是特别好看) 作为一个要极致利用空间的2B 自然不能容许这样的设计 我开始着想一个新设计 便是与旧版安卓类似的快速设置面板风格 我便开始了改造 所有按钮都是单点激活 / 长按功能 并且无用按钮会自动移除 于是一个非常简洁的菜单出现了 ——保留一切原有功能且更紧凑

下一步 我开始定制媒体播放器

音乐播放器 {#Player}#

音乐播放器原有的布局非常冗余 并且功能残缺 先从布局开始

布局 {#Layout}#

我设想了一下 应当把封面作为主体元素 但不宜占据满宽度 所以我让它 占据左侧⅗的位置 右侧空余部分 可以放置什么呢?

播放列表

这是个好主意 如何呈现呢?同样以封面呈现 并且 可以同时展现3张

封面 {#Cover}#

于是我开始动手尝试 期间无数次修改和AI对峙 最后 成功改出来了! Hover(鼠标悬于)封面会出现操作菜单

  • 外侧控制进度条
  • 内侧控制播放/音量/切歌

非常符合直觉的设计

然而由于可能是svelte组件的功能缺失或我AI技术力不足 这里无法导入播放控制图标 所以你看到的都是字符我的替代方案

然而 移动端无法使用 Hover 而常驻菜单又过于难看 丞需解决 我将目光放向了……

正在播放 {#NowPlaying}#

播放列表的展示也是一难度 我决定这样

  • 采用堆叠式卡片
  • 正在播放曲目封面和左侧平齐
  • 未播放歌曲封面缩小并加以透明度

并且 注意到 当前播放的歌曲封面我们并没有利用到 这里还处于右侧区域 那么… 可以干什么呢?

当然是控制音量啦!

这样 便解决了移动端适配问题

歌词 {#Lyric}#

歌词部分 我注意到原本的翻译采用的是 原文(翻译) 的格式 可是这样换行会非常不优雅 于是我想到一个绝妙的解决方案

检索每行歌词括号并换行 样式改为小字

这样 就不会有诡异的换行了 可是还存在一些问题

一些歌曲的歌词自带()这种如何处理呢?

灵光乍现

检索每行歌词最后一对括号

这样 能适配绝大部分的歌词了

更多功能的加入 {#More}#

整体框架搭好啦! 下面我便开始了功能的完善 包括洗牌 歌词放大 自定义歌单等个性化功能我不过多赘叙

打乱列表与洗牌动画{#Radom}#

原版的随机播放不同于常见的音乐播放软件 (我愿称之为 打乱 形式) 他是真的数字随机 会出现同样的歌曲 所以 我选择额外开发一个 洗牌 功能 可以打乱当前列表

入口的选择 {#Entrance}#

怎么开启这个洗牌呢

有一个非常符合只有我的直觉的方式

长按右侧当前播放曲目封面

为什么呢

因为当前播放曲目是不会变的 放在这里就很明确

我的职责当然就是设计+调试 代码交给AI 又是一段和AI斗智斗勇的过程 最终实现了这个带丝滑动画的洗牌 结果在接下来的解耦中动画被AI吃了

总之 最后 我完成了这样的一个播放器

解耦&优化#

在还没完成以上全部功能的时候 最文件已经达到了2000多行 非常不方便我与AI的交流如何修改代码 所以 我开始了解耦工作 拆分成了一堆文件

关于移动端#

移动端的长按 极易触发长按菜单 后面发现应该是因为后面有个壁纸 应当制作屏蔽就可以了 所以 我采用了 双击/长按并行策略 在解耦的过程里 我把它放在了独立的Click.ts中 可以随时调用 这大大减小了体积和方便了修改

结语 {#End}#

网站的开发实属不易 还有许多的bug没有修 但是 感谢AI给我们带了了这个空间 可以自由展现出自己想法的空间 虽然不一定能完全实现 但只要耐心的引导 便可还原80%吧!虽然可能很烦很慢 但是起码比从零学快吧

注:本来笔者想要用Cli自动编程的 但是没钱+不知道为什么进了Cli就智商堪忧了 最终代码部分均使用的网页AI(T—T)

最后 祝你也能完成心仪的作品

安秋 二〇二六 七月廿五

分享

感谢分享!

一次音乐播放器的定制
https://ankyu.pagesdev/posts/web/2026/w02/
作者
unjal
发布于
2026-07-25
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录