Skip to content

refactor: 移动端适配、Android播放优化与本地功能完善#25

Open
Shomi-FJS wants to merge 1 commit into
SPlayer-Dev:devfrom
Shomi-FJS:cache-fix
Open

refactor: 移动端适配、Android播放优化与本地功能完善#25
Shomi-FJS wants to merge 1 commit into
SPlayer-Dev:devfrom
Shomi-FJS:cache-fix

Conversation

@Shomi-FJS
Copy link
Copy Markdown

📌 变更类型

  • ✨ feat — 新功能
  • 🐞 fix — Bug 修复
  • 🎨 style — 仅样式 / 格式,不影响逻辑
  • ♻️ refactor — 重构,不改变外部行为
  • ⚡ perf — 性能优化

📝 变更说明

本 PR 聚焦 Android 端播放稳定性、本地音乐能力和移动端界面适配,主要完成以下改动:

  1. 优化移动端竖屏响应式布局,改善 SongList 以及本地音乐的列表、歌手、专辑、文件夹页面在手机竖屏下的显示效果,同时兼顾平板横屏布局。
  2. 修复 Android 端播放异常问题,完善 MediaSession 封面路径处理、本地文件路径转义、播放错误后的原生恢复机制,降低后台播放、URL 过期或网络波动导致的播放失败概率。
  3. 完善本地音乐功能,新增本地歌曲嵌入封面提取与缓存,修复文件夹路径解析问题,并补充播放缓存清理相关接口。
  4. 修复播放器状态同步问题,统一 Android 原生播放器与前端状态同步的时间单位,避免远程通知栏进度异常,并减少重复触发 ENDED 事件导致的状态错乱。
  5. 优化图片组件和封面缓存链路,适配 Android 原生 file:// / content:// 协议图片加载,避免 WebView 直接加载本地资源失败。

🔗 关联 Issue

Closes #

📱 影响范围

  • 🎵 播放引擎 / 音频
  • 📝 歌词 / 桌面歌词
  • 🔔 通知栏 / MediaSession
  • 🌐 在线音乐 (网易云 / Jellyfin / Navidrome / Emby / Subsonic / Last.fm)
  • 🧩 内置 API (nodejs-mobile)
  • 🎨 UI / 主题 / 布局
  • 📦 构建 / 打包 / 签名
  • 📱 Capacitor / 原生 Android 代码
  • 📄 文档 / README

✅ 自检清单

  • 本 PR 目标分支为 dev
  • 本地已执行 pnpm lint 且无 warning
  • 本地已执行 pnpm typecheck 且无报错
  • 已在 至少一台真机 上构建并验证关键路径
  • UI 改动已兼顾 手机竖屏 + 平板横屏 两种布局
  • 新增 / 修改的文案使用中文,与项目整体风格一致
  • 未引入不必要的依赖 / 大体积资源
  • 未修改签名密钥 / CI Secrets 相关文件

🧪 测试方式

  1. 在 Android 真机上安装应用,验证在线歌曲、本地歌曲、后台播放、锁屏/通知栏控制、上一首/下一首切换均可正常工作。
  2. 扫描本地音乐目录,检查本地歌曲列表、歌手、专辑、文件夹页面展示是否正常,并确认本地歌曲封面可正确显示。
  3. 在手机竖屏和平板横屏下分别进入歌曲列表、本地音乐页面、播放器页面,确认布局没有遮挡、溢出或错位。
  4. 将应用切到后台或锁屏一段时间后继续播放,验证播放不中断,通知栏进度、封面、歌曲信息和 MediaSession 控制状态正确。
  5. 执行 pnpm lintpnpm typecheck,并完成 Android 真机构建安装验证。

💬 其他说明

  • Android WebView 不能直接加载应用私有目录下的 file:// 资源,本 PR 对本地封面路径做了兼容处理。
  • 原生播放错误恢复仅作为后台播放和网络波动场景的兜底,若多次恢复失败仍会回退到现有前端重试/跳过逻辑。
  • 本次未修改签名、CI Secrets 或构建密钥相关文件。

1.  移动端竖屏响应式布局适配:优化SongList、本地页列表/歌手/专辑/文件夹页面的移动端显示
2.  修复Android端播放异常:优化媒体会话封面路径处理、播放错误恢复机制、本地文件路径转义
3.  完善本地音乐功能:新增本地歌曲封面提取、文件夹路径解析修复、播放缓存清理接口
4.  修复播放器状态同步问题:修正Android原生播放器时间单位、避免重复触发ENDED事件
5.  优化图片组件:适配Android原生file/content协议图片加载
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant