Skip to content

About

Xiaomi MIX Flip Series Music APP Outer-screen enhancement with Lsposed API 102

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

音乐外屏增强 · MusicEnhance

为 Xiaomi MIX Flip / MIX Flip 2 设计的外屏音乐增强模块,基于 libxposed API 102。

模块包名:vip.chener.musicenhance。LSPosed 模块仓库的提交信息、分发版说明和发布说明模板见 提交指南。

在外屏打开已适配音乐应用的播放页,即可使用统一的全屏播放器:专辑背景、低频律动、滚动歌词,以及避开摄像头的播放控件。各应用继续负责歌曲播放和数据提供,模块设置页采用 Miuix 风格。

下载版本 · 反馈问题 · 安装与启用 · 构建与签名 · 自动发布

功能

外屏播放器

  • 全屏专辑背景:从屏幕中部向歌曲信息区域逐渐加深模糊,支持高清封面与缺图兜底。
  • 摄像头区域布局:黑色区域避让摄像头,控件随正反方向调整,支持整页 180° 翻转动画。
  • 频谱律动:使用独立的公共频谱模块,各应用共用多频带 spectral-flux 分析、起音门限和回落策略,在后台识别低音、鼓点及人声中高频起音;AudioTrack 路径按实际播放时钟驱动,各音轨独立分析,使用封面主色,暂停后平滑回落。
  • 播放控制:播放/暂停、上下首、拖动进度、循环模式和喜欢状态。循环按钮直接切换宿主支持的模式。
  • 独立增强页面:进入时从下向上滑入,退出时向下滑出,背景显示宿主首页;常规入口在原生播放页创建或展开前转入增强页,共用全屏及外屏小组件显隐策略,退出后恢复原生首页布局,返回按钮与新旧系统返回事件共用关闭流程。
  • 外屏常亮:可在设置中开启,默认关闭;仅在增强播放器前台生效,歌词页同样适用,仍可手动锁屏。
  • 按应用启用:每款音乐应用都有独立 Hook 开关,内屏保留原生界面。
  • 后台播放通信:各应用共用按增强页可见状态订阅的进程通信。歌曲状态合并发送,封面通过宿主缓存文件传递;状态和频谱分别等待接收确认,页面退出或订阅超时后停止向其发送,避免后台广播堆积。

滚动歌词

  • 点击封面页的非功能区域进入歌词页,背景切换为更深的整屏模糊。
  • 歌曲信息移至返回键旁,黑色侧栏平滑延伸,显示喜欢、播放/暂停和专辑缩略图。
  • 歌词跟随播放进度逐行上移,带错峰弹簧动画。
  • 默认歌词为半透明灰色,当前句整句渐变为白色;距离当前句越远,上下两侧模糊越深。
  • 手动滚动时平滑取消模糊,并显示选中句的开始时间;停止操作一段时间后恢复跟随。
  • 点击歌词文字跳转到该句并播放;点击空白区域或专辑缩略图返回封面页。

支持范围

设备与环境

项目 要求
设备 Xiaomi MIX Flip(ruyi)、Xiaomi MIX Flip 2(bixi)
系统 小米 HyperOS,Android 14(API 34)及以上
框架 已安装并正常运行、支持现代 libxposed API 102 的 LSPosed 环境
使用位置 外屏音乐播放页

最低 Android 版本仅代表安装要求;外屏布局依赖小米系统实现。现有真机验证主要来自 MIX Flip 2,其他 HyperOS 版本和 MIX Flip 一代仍需结合实际设备验证。

音乐应用

下表为当前适配所依据的应用版本。应用更新后会尝试按特征重新定位接口;是否能恢复各项能力取决于特征与协议是否仍然有效。

应用 适配版本 包名
QQ 音乐 自动适配接口(beta) com.tencent.qqmusic
Apple Music 6.5.2 com.apple.android.music
酷我音乐 12.2.2.4 cn.kuwo.player
酷狗概念版 5.2.9 com.kugou.android.lite
酷狗音乐(普通版) 20.8.2 / 20.8.4 com.kugou.android
椒盐音乐 自动适配接口(beta),已核对 12.3.2 / 12.4.0 / 12.4.1 官方版 com.salt.music
LX-X Music 26.09.20(待真机验证) com.lxwalnut.music.mobile
Spotify 9.1.90.2270(待真机验证) com.spotify.music

安装与启用

  1. 从 Releases 下载并安装 APK。标记为 Pre-release 的版本为 Beta 测试版。
  2. 在 LSPosed 中启用「音乐外屏增强」,确认模块的静态作用域已加载。
  3. 打开模块设置的「功能」页,开启需要使用的音乐应用;按需开启「播放器外屏常亮」。
  4. 首次启用,或更新涉及系统全屏、旋转及作用域规则时,重启手机。
  5. 在外屏打开已启用的音乐应用,进入其播放页。

作用域

作用域 用途
系统框架(system) 外屏全屏布局及小组件显隐策略
系统界面(com.android.systemui) 外屏正反方向旋转动画
上表中的音乐应用 播放入口、歌曲数据与控制适配

无需添加外屏桌面作用域。模块采用静态作用域,应用名单由安装包提供,不能通过手动勾选给旧版本增加新适配。

仅修改应用 Hook 开关,或更新应用侧适配代码后,需要强行停止并重新打开对应音乐应用。模块设置页只用于配置,不提供独立播放或预览入口。

使用与排查

开启后仍是原生播放器

确认设备、框架和音乐应用版本符合支持范围,并检查模块激活状态及该应用的 Hook 开关。强行停止并重新打开音乐应用;首次启用或更新系统侧规则后需重启手机。增强界面在外屏播放页触发,音乐应用首页和内屏保持原生显示。

返回时闪出原生播放器、全屏或小组件异常

先安装最新版本并重新启动对应音乐应用。系统窗口策略有更新时需重启手机。反馈时请注明:点击返回按钮还是使用返回手势、进入前的屏幕方向、是否从内屏切到外屏,以及使用的音乐应用。

封面模糊、缺图或切歌后需要等待

高清请求不能提高源图片本身的质量。部分歌曲没有有效专辑图,QQ 音乐会尝试歌手图;其他应用按各自策略使用较小尺寸或原生图片。预缓存只覆盖邻近队列,首次加载、缓存被清理或网络较慢时仍可能等待。

歌词为空,或喜欢按钮暂时不可用

歌词依赖宿主提供的逐句时间轴;只有纯文本歌词或原生没有歌词时,无法自动滚动。喜欢操作依赖宿主返回当前歌曲状态,并保留宿主的登录和收藏限制。椒盐和 LX-X 的喜欢图标仅作固定显示,酷狗概念版 AI 歌曲暂不支持收藏适配。

无法覆盖安装

本次包名迁移后,Android 会将 vip.chener.musicenhance 视为独立应用,无法覆盖旧包名版本,配置也不会自动迁移。请先记录旧配置,在 LSPosed 中停用旧模块,再安装并启用新模块、重新配置音乐应用开关;确认新模块可用后可卸载旧模块。不要同时启用两份模块。完成切换后重启手机,使系统框架和 System UI 加载新模块。

同包名版本覆盖安装时,新旧 APK 必须使用相同签名证书。Debug 包、自行签名包与已安装的发布包可能使用不同证书;需要更换签名时,先记录模块配置,再卸载旧模块、安装并重新启用。

提交反馈

请在 Issues 中提供:

  • 设备型号、Android / HyperOS 版本。
  • 模块版本、音乐应用名称与完整版本号。
  • 复现步骤、预期结果和实际结果。
  • 与问题相关的截图或录像;旋转问题注明正反方向及内外屏切换过程。
  • 复现后的 LSPosed 日志,模块日志标签为 MusicEnhance。
  • 封面或歌词问题对应的歌曲名、歌手和具体录音版本。

分享日志前请检查其中是否包含个人信息。

开发与扩展

开发约定见 AGENTS.md。应用私有接口集中在适配层,通用播放器负责展示、交互和生命周期。

目录

位置 内容
adapter 应用注册及 qq、apple、kuwo、kugou、kugoulite、salt、lxx 适配
player 通用 Activity、会话、控制器和数据接口
player/ui 播放器、歌词与控件展示
player/lyrics 歌词提供器与交互逻辑
player/artwork 封面下载、缓存、预取及过渡
player/audio 公共音频采样、频谱分析及播放时间轴;不依赖音乐应用的私有接口
device 外屏识别、摄像头定位和布局
hook 模块入口、宿主 Hook、Activity 路由及系统窗口策略
.github 自动构建与发布脚本

接入新播放器时:

  1. 添加 <应用>PlayerProfile 和 <应用>PlayerAdapter,通过现有注册机制接入。
  2. 在应用适配目录实现播放入口、原生页面退出、歌曲状态、歌词、封面与控制接口。
  3. 通过 createSession() 注入数据和操作;缺失能力返回未知或不支持。
  4. 更新静态作用域及 Manifest 查询配置。
  5. 验证冷启动、快速切歌、暂停后歌词定位、返回、正反旋转、内外屏切换及小组件恢复。

耗时工作放到后台,异步结果校验歌曲身份;动画、监听、任务和提供器须有对应的取消或释放路径。仅添加包名和作用域不代表完成适配。

About

Xiaomi MIX Flip Series Music APP Outer-screen enhancement with Lsposed API 102

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages