Skip to content

Commit ead3692

Browse files
committed
v3.0.0-rc.3
☁️ 新增 WebDAV 音乐源 🎵 新增本地歌曲 🔍 新增页面缩放 (50%-150%) 📂 新增本地 TTML/LRC 歌词支持 🔗 新增网络代理设置 ⬇️ 新增音乐下载 🌐 完善流媒体支持 (Navidrome/Jellyfin/Emby/Subsonic) 📱 最低兼容性调整为 Android 10 📐 重做手机端底栏/播放栏布局 🔧 修复显示系统状态栏滑动后自动隐藏 🔧 修复允许与其他应用同时播放无效 🔧 修复 Android 触控跳转 & seek 位置丢失 🎚️ 新增全局歌词偏移设置
1 parent e4f1213 commit ead3692

69 files changed

Lines changed: 3479 additions & 656 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,21 @@
99

1010
<!-- 勾选一项或多项 -->
1111

12-
- [ ] ✨ feat — 新功能
13-
- [ ] 🐞 fix — Bug 修复
14-
- [ ] 🎨 style — 仅样式 / 格式,不影响逻辑
15-
- [ ] ♻️ refactor — 重构,不改变外部行为
16-
- [ ] ⚡ perf — 性能优化
17-
- [ ] 📝 docs — 仅文档
18-
- [ ] 🧪 test — 新增 / 修改测试
19-
- [ ] 🔧 chore — 构建 / 脚本 / 依赖
20-
- [ ] 🚀 ci — 仅 CI 配置
21-
- [ ] ⏪ revert — 回滚
12+
- [ ] ✨ feat — 新功能
13+
- [ ] 🐞 fix — Bug 修复
14+
- [ ] 🎨 style — 仅样式 / 格式,不影响逻辑
15+
- [ ] ♻️ refactor — 重构,不改变外部行为
16+
- [ ] ⚡ perf — 性能优化
17+
- [ ] 📝 docs — 仅文档
18+
- [ ] 🧪 test — 新增 / 修改测试
19+
- [ ] 🔧 chore — 构建 / 脚本 / 依赖
20+
- [ ] 🚀 ci — 仅 CI 配置
21+
- [ ] ⏪ revert — 回滚
2222

2323
## 📝 变更说明
2424

2525
<!-- 清晰说明 **改了什么** 与 **为什么改**,而不是逐行复述 diff -->
2626

27-
28-
2927
## 🔗 关联 Issue
3028

3129
<!-- 用 Closes / Fixes 关键字关联,会在合并时自动关闭对应 Issue -->
@@ -62,8 +60,8 @@ Closes #
6260
<!-- 前后对比更佳,可直接拖拽图片或视频 -->
6361

6462
| 改动前 | 改动后 |
65-
| :---: | :---: |
66-
| | |
63+
| :----: | :----: |
64+
| | |
6765

6866
## 🧪 测试方式
6967

.github/workflows/android-release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,13 @@ jobs:
168168
if [ -n "${{ inputs.release_tag }}" ]; then
169169
TAG="${{ inputs.release_tag }}"
170170
else
171-
TAG="android-${BUILD_TYPE}-v${VERSION}-run.${GITHUB_RUN_NUMBER}"
171+
TAG="v${VERSION}"
172172
fi
173173
174174
if [ -n "${{ inputs.release_name }}" ]; then
175175
NAME="${{ inputs.release_name }}"
176176
else
177-
NAME="SPlayer for Android ${VERSION} ${BUILD_TYPE} (${SHORT_SHA})"
177+
NAME="SPlayer for Android ${VERSION} ${BUILD_TYPE}"
178178
fi
179179
180180
if [ "$BUILD_TYPE" = "release" ]; then
@@ -200,7 +200,7 @@ jobs:
200200
continue
201201
fi
202202
fi
203-
DST="release/SPlayer-for-Android-${TAG}-${abi}.apk"
203+
DST="release/SPA-${BUILD_TYPE}-${VERSION}-${abi}.apk"
204204
cp "${SRC}" "${DST}"
205205
sha256sum "${DST}" > "${DST}.sha256"
206206
FOUND=$((FOUND + 1))
@@ -222,7 +222,7 @@ jobs:
222222
- name: Upload workflow artifact
223223
uses: actions/upload-artifact@v4
224224
with:
225-
name: SPlayer-for-Android-${{ steps.meta.outputs.tag }}
225+
name: SPA-${{ steps.meta.outputs.build_type }}-${{ steps.meta.outputs.tag }}
226226
path: |
227227
release/*.apk
228228
release/*.sha256

.github/workflows/opencode.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: opencode
2+
on:
3+
issue_comment:
4+
types: [created]
5+
pull_request_review_comment:
6+
types: [created]
7+
8+
jobs:
9+
opencode:
10+
if: |
11+
contains(github.event.comment.body, '/oc') ||
12+
contains(github.event.comment.body, '/opencode')
13+
runs-on: ubuntu-latest
14+
permissions:
15+
id-token: write
16+
contents: write
17+
pull-requests: write
18+
issues: write
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v6
22+
with:
23+
fetch-depth: 1
24+
persist-credentials: false
25+
26+
- name: Run OpenCode (OpenAI format)
27+
if: secrets.LLM_TYPE == 'openai'
28+
uses: anomalyco/opencode/github@latest
29+
env:
30+
OPENAI_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
31+
OPENAI_BASE_URL: ${{ secrets.OPENCODE_API_URL }}
32+
with:
33+
model: openai/${{ secrets.OPENCODE_MODEL }}
34+
prompt: |
35+
你的名字是「${{ secrets.OPENCODE_NAME }}」,在回复开头用这个名字自我介绍。
36+
37+
- name: Run OpenCode (Anthropic format)
38+
if: secrets.LLM_TYPE == 'anthropic'
39+
uses: anomalyco/opencode/github@latest
40+
env:
41+
ANTHROPIC_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
42+
ANTHROPIC_BASE_URL: ${{ secrets.OPENCODE_API_URL }}
43+
with:
44+
model: anthropic/${{ secrets.OPENCODE_MODEL }}
45+
prompt: |
46+
你的名字是「${{ secrets.OPENCODE_NAME }}」,在回复开头用这个名字自我介绍。

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 更新日志
2+
3+
所有版本的更新记录。最新版本在最上方。
4+
5+
---
6+
7+
## v3.0.0-rc.3
8+
9+
- ☁️ 新增 **WebDAV 音乐源** — 支持通过 WebDAV 连接并播放远程音乐
10+
- 🎵 新增 **本地歌曲** — 扫描本地音乐文件,与在线曲库统一管理
11+
- 🔍 新增 **页面缩放** — 50%–150% 全局缩放,缩小后等效视口变宽,达到阈值可切换到 Pad 布局(尚未完全适配,欢迎 PR 帮忙完善;没有 PR 的话也尽量在下个版本彻底做好)
12+
- 📂 新增 **本地 TTML/LRC 歌词支持** — 歌词目录扫描支持 `.lrc``.ttml`,按文件名 ID 和元数据匹配
13+
- 🎵 新增 **同目录歌词查找** — 播放本地音乐时自动查找同目录下的歌词文件
14+
- 🔗 新增 **网络代理设置** — Android 端可配置 HTTP/HTTPS 代理用于内置 API 请求
15+
- ⬇️ 新增 **音乐下载** — 开发者模式下可通过 SAF 选择下载目录,下载歌曲及歌词
16+
- 🌐 完善 **流媒体支持** — Navidrome / Jellyfin / Emby / Subsonic / OpenSubsonic 全平台可用
17+
- 📱 最低兼容性调整为 **Android 10**
18+
- 📐 重做 **手机端底栏 / 播放栏布局** — 底栏改成全宽贴底实心条,播放栏改为圆角浮岛悬浮其上;底栏选中高亮改为基于 JS 测量的**滑动指示器**,切换页签时平滑过渡而非瞬移
19+
- 🎯 手机端整体 **轻度紧凑(约 -15%)** — 收紧 CoverList 卡片间距与文字区 padding/字号、SongCard 内边距与 cover 尺寸、ListDetail 头部高度、Setting 项间距与卡片 padding;平板(shortestSide ≥ 768)保持原样
20+
- 🔧 修复 **显示系统状态栏** 滑动后自动隐藏的问题
21+
- 🔧 修复 **允许与其他应用同时播放** 无效的问题 — 开启时改用 ExoPlayer 引擎(handleAudioFocus=false)
22+
- 🔧 修复 **Android 触控跳转** — 修复触控进度跳转异常
23+
- 🔧 修复 **跳转后 seek 位置丢失回到 0:00**
24+
- 🔧 修复 **自动切下一首进度条跳到非 0:00 错误位置**
25+
- 🎚️ 新增 **全局歌词偏移设置**(PR #11
26+
---
27+
28+
## v3.0.0-rc.2
29+
30+
- 🔄 修复 **横竖屏切换** 时部分界面布局错乱
31+
- 📱 修复 **手机小屏** 下文字挤压成一团的问题
32+
- ⬆️ 调整 **"回到顶部"按钮** 位置,不再遮挡其他控件
33+
- 🎨 修复 **桌面歌词** 在未开启文本背景遮罩时、锁定状态下仍显示背景的 bug
34+
- 📦 GitHub Actions 构建改为 **分架构打包**,单包体积更小
35+
36+
---
37+
38+
……

CONTRIBUTING.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
请使用对应的 Issue 模板(点击 **New Issue** 会出现选择页):
1212

13-
| 模板 | 用途 |
14-
| --- | --- |
15-
| 🐞 **Bug 反馈** | 使用过程中遇到的缺陷、闪退、异常行为 |
16-
|**功能建议** | 新功能 / 改进想法 |
13+
| 模板 | 用途 |
14+
| ---------------- | ----------------------------------------------- |
15+
| 🐞 **Bug 反馈** | 使用过程中遇到的缺陷、闪退、异常行为 |
16+
|**功能建议** | 新功能 / 改进想法 |
1717
| 💬 **QQ 交流群** | 群号 `602750631` — 使用疑问与讨论,不替代 Issue |
1818

1919
### 基本要求
@@ -41,8 +41,8 @@
4141

4242
- 目标分支:`master`
4343
- 从最新的 `master` 新建分支,命名建议:
44-
- `feat/<模块>-<简述>` — 新功能
45-
- `fix/<模块>-<简述>` — Bug 修复
44+
- `feat/<模块>-<简述>` — 新功能
45+
- `fix/<模块>-<简述>` — Bug 修复
4646
- `refactor/<模块>-<简述>`
4747
- `docs/<简述>`
4848
- 分支名用小写与短横线,不要用中文
@@ -61,18 +61,18 @@
6161

6262
`<type>` 取值:
6363

64-
| type | 含义 |
65-
| --- | --- |
66-
| `feat` | 新功能 |
67-
| `fix` | Bug 修复 |
68-
| `perf` | 性能优化 |
69-
| `refactor` | 重构,不改变外部行为 |
70-
| `style` | 仅代码格式 / 样式,不影响逻辑 |
71-
| `docs` | 仅文档 |
72-
| `test` | 测试相关 |
73-
| `chore` | 构建 / 依赖 / 脚本 |
74-
| `ci` | GitHub Actions 等 CI 配置 |
75-
| `revert` | 回滚之前的提交 |
64+
| type | 含义 |
65+
| ---------- | ----------------------------- |
66+
| `feat` | 新功能 |
67+
| `fix` | Bug 修复 |
68+
| `perf` | 性能优化 |
69+
| `refactor` | 重构,不改变外部行为 |
70+
| `style` | 仅代码格式 / 样式,不影响逻辑 |
71+
| `docs` | 仅文档 |
72+
| `test` | 测试相关 |
73+
| `chore` | 构建 / 依赖 / 脚本 |
74+
| `ci` | GitHub Actions 等 CI 配置 |
75+
| `revert` | 回滚之前的提交 |
7676

7777
`<scope>` 建议取模块名,常见示例:`DesktopLyric``Player``Lyric``Search``Setting``Notification``Capacitor``Android``CI`
7878

0 commit comments

Comments
 (0)