Skip to content

Releases: wowohut/SmartisanMusic-Revived

v3.0.0

16 Jun 08:38

Choose a tag to compare

大版本更新:加入云音乐,接入网易云音乐,同时继续打磨原版体验、弹窗、设置页和播放细节。

云音乐

  • 新增云音乐 Tab,支持网易云首页推荐、搜索、歌单、专辑、艺术家、电台和播客等内容浏览。
  • 支持网易云 Web 登录、账号状态刷新、红心/喜欢列表同步、每日推荐和账号歌单内容。
  • 支持网易云歌单创建、添加歌曲、移除歌曲、删除歌单,以及从“我的音乐”进入账号歌单详情。
  • 支持在线歌曲播放、播放 URL 刷新、在线队列恢复、在线封面和在线歌词。

缓存与性能

  • 新增网易云页面磁盘缓存和结构化编解码,覆盖首页、搜索、账号列表和各类详情页。
  • 新增歌词磁盘缓存和在线播放流缓存,提升在线歌曲二次播放与歌词加载体验。
  • 使用 Coil 统一云音乐封面加载,并加入内存/磁盘两级缓存。
  • 将云音乐封面列表和搜索结果改为 Lazy 布局,减少列表重组与图片重复加载。

简易音效

  • 新增简易音效功能,可在设置页开启或关闭播放音效处理。
  • 支持常用音效预设,并提供自定义频响调节,方便按耳机、音箱或个人听感微调。
  • 接入播放服务的均衡器与低音增强控制,切歌和恢复播放时会跟随当前设置应用。

体验细节

  • 统一原版弹窗样式,播放列表命名、艺术家分隔符和播放页确认弹窗更接近原版。
  • 优化设置页分组样式,新增在线播放音质二级页。
  • 优化播放页歌词滚动跟随、无歌词占位、标题栏转场、页面返回动画和底部播放条边界。
  • 修复搜索页艺术家详情交互、云音乐标题栏阴影、二级页返回状态和部分封面解析问题。

其他

  • 调整应用包名为 app.smartisanmusic.revived,降低 ColorOS 等安全中心将侧载包识别为重签名或仿冒应用的概率。
  • 升级 Kotlin、AGP、Compose、Media3、KSP、coreKtx 等依赖,并将 compileSdk 提升到 37。

注意

  • 由于包名从 com.smartisanos.music 改为 app.smartisanmusic.revived,Android 会将本版本识别为新应用,旧版数据和权限不会自动迁移。
  • 本版本为云音乐能力加入后的 3.0 大版本,versionName3.0versionCode300

v2.1.2

20 May 08:05

Choose a tag to compare

一些细节优化

播放体验

  • 修复打碟/搓碟过程中偶发无声、声音忽大忽小的问题,长时间搓碟时音频输出更连续。
  • 改善切歌后搓碟声音偏小、歌词页切回播放页后搓碟短暂失效的情况。
  • 优化搓碟音频窗口与采样位置同步,减少恢复播放或低速拖动后的响度突变。

歌词页与操作细节

  • 为歌词页右上角屏幕常亮按钮补齐 Smartisan OS 风格 Toast 提示。
  • 将屏幕常亮状态落到窗口级 KEEP_SCREEN_ON,离开歌词页或关闭时会正确清理。
  • 修正歌词页更多操作面板里的按钮文案。

视觉与系统栏

  • 修正标题栏长标题和左右按钮重叠的问题,长专辑名会保持居中并正确省略。
  • 固定浅色系统栏语义,避免系统暗色模式下状态栏图标颜色异常。
  • 减少系统栏对 Smartisan legacy 浅色界面的视觉干扰。

v2.1.1

19 May 07:31

Choose a tag to compare

完善大量细节,优化使用体验。

播放与播放页

  • 优化唱片与歌词页切换动画,加入淡入、缩放和轻微位移过渡,切换更连贯。
  • 将播放页控制按钮、音量滑块和全局播放条资源从 6.8.0 替换为 8.1.0 版本。
  • 修正会话恢复逻辑,重新进入应用时保持暂停状态,不再被旧播放意图自动拉起播放。
  • 修正评分保存后的即时刷新,播放页、队列、歌曲页、播放列表页和搜索页同步显示新评分。

列表与快捷操作

  • 重做右侧字母快捷栏滑出行为,对齐原版隐藏、拖动、展开三态,改善侧滑灵敏度和按钮避让。
  • 统一歌曲页、专辑页、艺术家页、播放列表页和更多页的底部播放条避让,减少遮挡和额外空滚。
  • 优化多选滑动回退逻辑,支持滑出范围后恢复原选择状态,并修正播放次数排序行选择间距。
  • 扩大歌曲更多按钮命中区域,修复文件夹、专辑、歌曲和收藏列表里更多操作不稳定的问题。

页面细节与本地化

  • 新建播放列表加歌改为整页覆盖并复用歌曲页选择态,确认后按原版下滑退出。
  • 对齐专辑平铺滚动条、底部留白和 footer 表现,统一艺术家页底部数量显示。
  • 添加英文多语言资源,拆分 legacy 旧壳字符串,并修正英文数量单复数展示。
  • 短期禁用横屏,避免未适配横屏时普通手机误旋转破版。

v2.1.0

05 May 15:35

Choose a tag to compare

大幅优化性能,并继续打磨播放链路和交互细节。

在 8.1.0 legacy View 复刻主干完成后,这个版本重点降低媒体库冷启动和扫描开销,优化播放队列恢复与封面加载稳定性,统一 Media3 播放策略,接入预测性返回手势,增加艺术家分隔符号设置,修复系统通知封面错位,并补齐原版列表交互、专辑视觉、艺术家详情和二级页面转场细节。

更新重点

媒体库与冷启动性能

  • 新增 Room 持久化媒体库索引,冷启动优先复用本地索引,再按 MediaStore snapshot 增量刷新。
  • 优化首次进入 App 的媒体库加载路径,避免首屏阶段立即做完整扫描和重复 MediaStore 查询。
  • 播放队列恢复改为按 ID 查询并复用缓存,降低启动时恢复播放状态的额外开销。
  • 引入 stable key,降低 MediaStore ID 变化后导致播放队列、历史状态和媒体恢复失败的风险。
  • 手动刷新媒体库时只扫描未入库音频路径,并移除 DSD 格式主动扫描,降低刷新时的 CPU 开销。
  • 将专辑 / 艺术家封面补全移动到 IO 路径,避免主线程读取索引导致卡顿或闪退。
  • 修复媒体库加载期间歌单详情、加歌页等页面闪现假空态的问题。

播放链路与 Media3 行为

  • 统一专辑、艺术家、文件夹、收藏、播放列表和歌曲页的随机播放入口,改为交给 Media3 shuffle 处理。
  • 移除入口侧预打乱和分散的 Random 起播逻辑,避免双重随机和不同页面播放策略不一致。
  • 新增播放队列去重 helper,减少重复歌曲进入当前播放队列。
  • 队列快照保存 mediaId 与 stable key,恢复时支持 stable key fallback。
  • 播放服务恢复队列时按隐藏目录规则过滤,保持恢复结果和媒体库可见性一致。
  • 优化播放页状态刷新,将进度、音量等高频状态拆开刷新,减少完整播放状态的重复重建。
  • 硬件音量键绑定媒体音量流,并保持自定义音量条与系统媒体音量同步。

系统通知与封面稳定性

  • 新增 MediaSession 专用 BitmapLoader,优先按当前 mediaId 从本地音频文件读取嵌入封面。
  • 避免系统通知使用 Media3 动态 metadata 中可能滞后的 artworkData,修复锁屏 / 通知栏专辑图错位。
  • 在媒体库条目 extras 中写入 mediaId,供通知封面加载在 artworkUri 缺失或不稳定时回退定位当前歌曲。
  • 播放服务接入并释放封面 loader,保持系统通知封面与当前 MediaSession 条目一致。

列表交互与原版操作细节

  • 新增 legacy 列表滑动选择控制器,支持歌曲、专辑、歌单、喜欢歌曲、文件夹等页面连续滑动多选。
  • 修复滑动多选偶发卡顿,边缘滚动改为逐帧滚动,减少动画堆叠。
  • 对齐原版歌曲列表右滑删除,补齐垃圾桶图标、右滑展开 / 收起动画和删除确认联动。
  • 修复歌曲左侧多选触摸状态,避免 checkbox 命中异常和蓝色高光残留。
  • 对齐原版 ListView footer 机制,为歌曲、收藏、文件夹、播放列表及详情歌曲列表补齐底部占位,避免最后一项被底部播放条遮挡。
  • 文件夹详情补齐歌曲三点操作,并缓存目录与歌曲列表绑定状态,降低返回和刷新时的重复绑定开销。

专辑、艺术家与二级页面转场

  • 专辑页和艺术家详情支持保存平铺 / 列表显示偏好,重启后不再恢复默认列表状态。
  • 新增专辑封面大图浏览层,支持点击封面查看大图,并可点击空白区域或返回键关闭。
  • 对齐原版专辑平铺视觉,恢复普通专辑套框、所有歌曲无默认套框,以及宽屏设备上的封面尺寸。
  • 将专辑页列表切平铺动画调整为原版式 GridView LayoutAnimation:列表先退场,平铺按顺序淡入。
  • 优化艺术家详情专辑列表 / 平铺切换动画,减少背景纹理变化和“所有歌曲”图标跳动。
  • 接入二级页面预测性返回手势,专辑详情、艺术家详情、播放列表详情及对应标题栏支持跟手返回。
  • 修复喜欢歌曲、文件夹、播放列表详情返回时白底闪烁或空页面闪现的问题。
  • 修复艺术家详情中进入具体专辑时前进 / 返回闪烁,以及返回时直接跳回艺术家总页的问题。
  • 恢复艺术家根列表和艺术家专辑列表点击高光。

设置、搜索与项目整理

  • 新增自定义艺术家分隔符设置,支持按用户配置聚合艺术家、专辑和搜索展示。
  • 清理一批历史 lint 与资源类型问题,包括 Media3 unstable API 标记、Compose 字符串读取、selector 资源目录和自定义 View styleable 声明。
  • README 更新为 2.1.0 版本说明。

完整变更记录

v2.0.0...v2.1.0

v2.0.0

03 May 17:53

Choose a tag to compare

一次大版本更新。

从 v1.1.0 到 v2.0.0,项目基本完成了从早期 Smartisan OS 6.8.0 Compose 复刻路线,到 Smartisan Music 8.1.0 legacy View 复刻路线的切换。主界面、播放页、主要二级页面和播放链路都重新整理了一遍,所以这次直接跨到 2.0。

更新重点

8.1.0 legacy View 复刻

  • 引入 Smartisan Music 8.1.0 视觉资源,补齐大量原版 drawable、layout、selector、anim、dimens 和 shim 控件。
  • 主界面切换到 legacy View 壳,删除早期 Compose 主页面入口,让整体层级、列表质感、标题栏、底部 Tab 和底部播放条更贴近原版。
  • 对齐歌曲、专辑、艺术家、播放列表、我喜欢、文件夹、更多、设置等主要页面。
  • 完成专辑列表 / 平铺切换、专辑详情页、二级页面横向转场和设置页纵向转场等动画细节。

播放页与黑胶体验

  • 对齐播放页 legacy 壳层、标题栏、投影、入场动画和播放页转场。
  • 完善黑胶唱盘、唱针、搓碟、歌词 / 控制区和滑动交互。
  • 优化打碟音效连续性、大尺寸封面加载和搓碟音频卡顿问题。
  • 补齐播放页弹窗、触觉反馈、误触处理和唱盘角度校正。

播放队列与播放链路

  • 重做播放队列展开 / 收起效果,并补齐队列拖拽排序。
  • 延迟构造播放队列数据,减少播放页打开时的卡顿。
  • 补齐歌曲评分链路和播放次数统计。
  • 优化后台播放、播放状态持久化、封面加载和外部音频打开。

搜索、排序和资料库

  • 复刻原版全局搜索页。
  • 完成歌曲排序筛选与原版样式对齐。
  • 修复歌曲页字母栏状态、排序选择态布局、喜欢歌曲空态提示等细节。
  • 调整文件夹页媒体库重扫入口,优化本地资料库刷新体验。

文档与项目整理

  • 更新 README,说明当前 8.1.0 legacy View 复刻版本、People-11 移植版来源和项目边界。
  • 新增 6 张真机截图。
  • 新增非商业用途 LICENSE。
  • 旧的 Smartisan OS 6.8.0 Compose 版本历史已保存在 archive/6.8.0-compose 分支。

特别感谢

特别感谢 People-11 的 SmartisanOS_APP_Port 项目。Music_8.1.0.apk 为这个版本提供了非常重要的视觉和交互基准。没有这份移植工作,就没有现在这个 8.1.0 复刻版本。

完整变更记录

v1.1.0...v2.0.0

v1.1.0

30 Apr 07:44

Choose a tag to compare

交互体验进一步贴近原版 Smartisan OS 音乐,核心质感已趋近完整。

更新内容

  • 还原原版搓碟惯性甩盘,松手后有更接近原版的惯性与回弹。
  • 校正唱针拖动体验,恢复原版角度范围、抬落针动画和大屏唱片尺寸。
  • 修复播放页空白区域误触导致进度回到起点的问题。
  • 重做全局搜索页视觉,搜索栏、分类栏、历史标签和结果列表更贴近原版。
  • 稳定锁屏与系统媒体封面显示,减少专辑图和播放状态跳动。
  • 恢复底部音量控制条原版宽度,避免大屏被拉长。

v1.0.4

29 Apr 13:14

Choose a tag to compare

修复专辑页封面重复加载导致的切换与进入播放页卡顿问题,提升页面过渡流畅度

v1.0.3

29 Apr 11:31

Choose a tag to compare

主要内容

  • 支持播放页唱针拖动交互,可直接拖动唱头位置控制播放进度
  • 优化专辑页列表 / 平铺视图切换动画,提升封面切换连续感
  • 注册系统音乐应用入口,支持作为默认音乐应用候选,并支持从外部入口打开本地音频文件

v1.0.2

28 Apr 17:14

Choose a tag to compare

优化诸多细节,完善使用体验

v1.0.0

20 Apr 12:55

Choose a tag to compare

已完成播放器基础功能,后续版本将继续打磨 UI 细节与交互质感