MusicLingXi · 离线音乐播放器 | 星雨笔录
面向个人使用的 Android 离线播放器,使用原生 Web 技术组织播放界面,并通过原生媒体会话实现后台、通知与锁屏控制,支持同步歌词和播放模式。
项目介绍
将简洁的个人离线播放需求落实成可构建的 Android 工程,重点处理播放顺序、Web 与原生适配器分工,以及离开 WebView 后的媒体控制。
核心功能
播放与队列 搜索内置清单、切歌、拖动进度、查看队列,支持列表循环、单曲循环与随机一轮不重复。 同步歌词 解析 LRC 时间标签,高亮当前行并自动居中,可点击歌词跳转;无歌词时提供明确降级。 原生后台 Android 通过 MediaSessionService 和前台媒体服务维持播放,处理通知、锁屏控制与音频焦点。 状态记忆 保存最后曲目、音量、模式和明暗主题;冷启动恢复状态但不会自动开始播放。
使用流程
安装依赖 → 在浏览器预览界面 → 自行导入本地音频并校验清单 → 按需放入歌词 → 同步 Android 资源与插件 → 构建 APK 并在真机检查后台播放。
技术栈
HTML
CSS
JavaScript
Vite
Capacitor 8
Android MediaSession
关键实现
业务界面使用 ES modules 与原生 CSS;统一播放服务在浏览器 HTMLAudioElement 和 Android 原生适配器之间选择。播放模式纯函数与共享顺序游标负责重复、随机和上一首历史,避免两个适配器同时发声。
项目成果
自动测试 43 项 媒体清单 77 个占位 运行平台 Android / Web
验证与交付
2026-10-15 整理版本通过 43 项测试、77 首占位清单资源检查、无歌词降级检查、Web 生产构建及 Android 插件/资源同步。此轮不代表所有 Android 真机与系统版本均已完成体验验收。
源码位于 AI Coding 作品集合的独立目录,运行方法与依赖以项目 README 为准。
当前阶段与使用边界
公开仓库只有 77 个零字节音频占位文件,不含真实音频及歌词正文,克隆后会显示“暂无音频 / 暂无歌词”。需要自行提供可使用的音频。没有联网曲库、账号、推荐或云同步。
源码与文档
查看项目源码 GitHub 集合中的独立项目目录 运行与使用说明 依赖、启动、测试和项目边界