news 2026/10/29 1:57:52

15 分钟把 Folia 装进手机主屏幕:完整歌词动画播放器部署指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15 分钟把 Folia 装进手机主屏幕:完整歌词动画播放器部署指南

15 分钟把 Folia 装进手机主屏幕:完整歌词动画播放器部署指南

【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major

Folia 是一个把全屏歌词动画做进播放器里的 Web 应用,接网易云、QQ 音乐、酷狗、Navidrome 和本地曲库。这篇文章写给想在手机上用它的人:跟着做完,你的主屏幕上就多一个全屏歌词动画播放器,在线搜索、私有曲库、AI 主题配色全都能跑。

Folia 是什么:一个装在手机上的歌词动画播放器

一句话定义:Folia 是以全屏沉浸式歌词播放为核心的音乐播放器,网页打开就是完整形态,再装成 PWA 就拥有独立窗口和离线启动。

核心能力就四条:

  • 全屏歌词动画:每种风格带独立排版氛围和可调参数,窗口尺寸变了自动重新分行
  • 多源曲库:网易云、QQ 音乐、酷狗、Navidrome 在线拉取,封面与歌词照常驱动动画
  • AI 主题配色:按歌曲情绪和歌词生成背景与视觉参数(部署时配了 AI 密钥才可用)
  • PWA 独立窗口:vite.config.ts 声明了standalone显示模式和autoUpdate更新策略

手机场景下能做什么、不能做什么,看这张表就够:

能力手机原因
在线搜索与播放(网易云 / QQ / 酷狗)✅登录态存在手机浏览器里,换机要重新登录
全屏歌词动画与主题切换✅排版随竖屏自动重排,动画和光效不受影响
Navidrome 私有曲库✅封面歌词照常驱动,是 NAS 场景首选
本地音乐文件夹导入❌依赖 File System Access API,只有桌面 Chromium 系浏览器有
模组系统、壁纸模式❌桌面版专属能力

📌 定位一句话:手机上把 Folia 当"歌词动画播放器 + 在线/Navidrome 曲库"用,是最合适的打开方式;导入本地文件夹这类需求留在桌面端。

开始前先确认:4 个前置条件

先别动手部署,这四件事确认完再走后面的路线。

  1. 地址必须是 HTTPS。这是最硬的门槛:局域网 IP 的普通 HTTP 不属于浏览器安全上下文,Service Worker 装不稳、离线也跑不了。免费托管平台自带 HTTPS;自建部署则要靠反向代理加可信证书把地址变成 HTTPS,配置细节见 deploy/docker/README.md。
  2. 浏览器用 Chrome 或 Safari。安卓装 PWA 走 Chrome 菜单,iPhone 走 Safari 分享面板,别用第三方浏览器。
  3. 音乐 API 地址要填。部署时按 docs/technical.md 的环境变量表补齐必填项,至少要有VITE_NETEASE_API_BASE;变量填错或不填,装好手机后打开就是"能看不能听"。
  4. 账号在手机浏览器里登录。在线曲库的登录态跟着手机浏览器走,部署完第一次打开时顺手登录即可,换机需要重来一遍。

选一条路线跑起来

三条路线各适合一种人,对号入座:

路线适合谁大致耗时一句话特点
免费平台一键部署(Vercel / Cloudflare)新手5 分钟自带 HTTPS,不用自己管服务器
Docker 全栈部署NAS / 自建服务器用户15 分钟音乐 API 随栈打包,和 Navidrome 同机省事
克隆仓库自行部署想完全自定义30 分钟以上任何支持 Node.js 的平台都能跑

路线一:免费平台一键部署

  1. 在 Vercel 或 Cloudflare 导入 folia-major 仓库并创建项目
  2. 按 docs/technical.md 的环境变量表补齐必填项,最少填VITE_NETEASE_API_BASE
  3. 要用 QQ 音乐,按 docs/qq-music-deployment.md 把VITE_QQ_API_BASE填成/api/qq,并配上QQ_SESSION_SECRET
  4. 等构建完成,拿到带 HTTPS 的地址

路线二:Docker 全栈部署

  1. 新建一个空目录,放入 deploy/docker/compose.yaml 和环境变量模板
  2. 执行openssl rand -hex 32生成随机串,填入SYNC_TOKEN(至少 8 位,不填会拒绝启动)
  3. 执行docker compose up -d启动
  4. 浏览器访问http://NAS-IP:18080,看到曲库页面即成功

⚠️ 局域网 IP 的普通 HTTP 不属于安全上下文,PWA 装不稳也离线不了。用 NAS 自带的反向代理加可信证书把地址改成 HTTPS 再装,代理要传递Host、X-Forwarded-Proto、X-Forwarded-For等头。

路线三:克隆仓库自行部署

  1. 执行git clone https://gitcode.com/GitHub_Trending/fo/folia-major
  2. 按 docs/technical.md 准备音乐 API 地址与 AI 密钥等环境变量
  3. 构建后部署到任意支持 Node.js 的平台
  4. 手机浏览器打开页面,确认能正常搜索播放

装到手机:安卓 Chrome 与 iPhone Safari 步骤

装的动作本身不复杂,九成失败都栽在 HTTP 上,所以第一步永远是确认地址栏有锁形标志。

安卓:Chrome 添加到主屏幕

  1. 用 Chrome 打开 Folia 地址,确认地址栏有 HTTPS 锁形标志
  2. 点右上角菜单(⋮)
  3. 选"添加到主屏幕"或"安装应用"
  4. 确认名称显示为 Folia,点"添加"

iPhone:Safari 添加到主屏幕

  1. 用 Safari 打开 Folia 地址
  2. 点底部分享按钮
  3. 上滑找到"添加到主屏幕"并点选
  4. 确认名称后点"添加"

首次点开会转圈 10 秒左右,那是 Service Worker 在做首次缓存,之后启动快得多。iPhone 上因为页面内置了全屏元标签,点开后没有地址栏,和原生 App 混排在一起。

进阶玩法:主题、AI 配色与 Navidrome 私有曲库

装好只是开始,Folia 的可玩度主要在这两块。

竖着拿手机时歌词按窗口尺寸自动重新分行,动画速度和光效不受影响;部署新版后,Service Worker 走autoUpdate策略,下次打开自动生效。

  • 切换主题:主题速编入口里每个风格都带独立的排版氛围和可调参数,OLED 屏幕看深色主题(如 Lumi 流光)对比度最舒服
  • AI 配色:支持 Google Gemini 与 OpenAI 兼容接口,根据歌曲情绪和歌词生成背景与视觉参数;部署时没配 AI 密钥就跳过这步

把"自己的歌"放到 Navidrome

手机导入不了本地文件夹,但 NAS 上的歌可以通过 Navidrome 接进来:

  1. 在 NAS 上用 Docker 跑 Navidrome,挂载音乐目录
  2. 在 Folia 设置里填 Navidrome 地址、用户名和密码
  3. 确认后 Folia 拉取曲库、封面与歌词,歌词动画照常驱动
  4. Docker 全栈用户有省事做法:在.env里填NAVIDROME_URL、NAVIDROME_USERNAME、NAVIDROME_PASSWORD三项,backend 会向新打开的浏览器自动下发凭据

⚠️ Folia 走 HTTPS 时,Navidrome 地址也必须是 HTTPS,否则浏览器拦截混合内容,曲库直接连不上。

模组系统同样是进阶方向,但它属于桌面版能力,手机上用不到,这里就不展开了。

出问题时:问答排错与上线前自查

装的时候找不到"添加到主屏幕 / 安装应用"?九成是地址不是 HTTPS。先用锁形标志确认安全上下文,安卓换 Chrome、iOS 换 Safari,再重新加载一次页面。

服务器更新了,手机上还是旧版?Service Worker 是autoUpdate策略,正常情况下次打开自动刷新。长时间没变的话,清除一次站点数据,或删掉图标重新装。

手机能不能直接导入手机里的音乐文件?不能。本地目录导入只有桌面端 Chromium 系浏览器支持(File System Access API 的限制),手机端的"自己的歌"走 Navidrome 方案。

地铁、弱网环境打不开吗?能。核心界面资源已被预缓存,首次加载完成后弱网也能快速启动;音乐流本身仍需网络。

上线前自查清单

逐项核对,全过就可以正式用了:

  1. 地址栏有锁形标志(HTTPS)吗?
  2. 用的是 Chrome 或 Safari 吗?
  3. 部署时网易云等音乐 API 地址填了吗?
  4. 主屏幕图标名称显示为 Folia 吗?
  5. 首次打开等了约 10 秒让缓存完成吗?

【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 1:56:26

Python ai-explain 包实战案例与常见错误

1. 引言在机器学习与数据分析项目中,模型的可解释性越来越重要。Python 的 ai-explain 包是一个轻量级工具,用于为 AI 模型生成自然语言解释,帮助开发者快速理解模型输出背后的原因。本文将从功能、安装、语法、参数、9 个实际应用案例以及常…

作者头像 李华
网站建设 2026/10/29 1:56:14

【AI编译器入门②】TVM架构拆解:Relay、Relax、TIR与Runtime四层结构

【AI编译器入门②】TVM架构拆解:Relay、Relax、TIR与Runtime四层结构本文是「AI编译器」系列的第二篇。TVM是学术界和工业界最成熟的AI编译器之一。很多人学TVM时容易被一堆名词搞晕:Relay、Relax、TIR、TE、Schedule、Runtime……它们都是什么&#xff…

作者头像 李华
网站建设 2026/10/29 1:55:05

BongoCat:免费开源的键盘猫,跟着你的鼠标和按键一起动

BongoCat:免费开源的键盘猫,跟着你的鼠标和按键一起动 【免费下载链接】BongoCat 🐱 BongoCat — A cross-platform interactive desktop pet that brings fun to your desktop! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat …

作者头像 李华
网站建设 2026/10/29 1:53:54

Kafka写数据入口:消息进了Broker之后交给谁

摘要:网络层把 Produce 请求解析完、RequestHandler 按 apiKey 路由之后,消息真正落盘的第一站是 ReplicaManager.appendRecords。这篇进入存储层,讲清楚写数据的调用链、appendRecords 内部五步、acks 三种分支,以及 acksall 时请…

作者头像 李华
网站建设 2026/10/29 1:52:51

基于 Spring Boot + Vue3 的民宿预订管理系统设计与实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系名片! 一、项目背景与意义 随着短途旅行和个性化住宿需求的增长,民宿已经成为旅游住宿市场的重要组成部分。与传统酒店相比,民宿房源分散、房型差异大、房东…

作者头像 李华
网站建设 2026/10/29 1:50:35

华为OD机试 - 最小极差分组(Python/JS/C/C++/Go 新系统 100分)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华