Levyra 是一款面向 Android 和 Windows 的开源音乐播放器,由意大利开发者 Luca 独立开发维护,GitHub ID 为 LUC4N3X,采用 GPL-3.0 授权发布。仓库于 6 月 28 日建立,目前积累 342 颗星,累计发布 54 个版本,最新 v2.5.8 于 9 月 14 日更新。项目无需注册账号,不含广告 SDK 与分析 SDK,界面支持 36 种语言,Android 侧翻译通过 Weblate 管理并已实现 100% 覆盖。
320 kbps 优先,播错歌就放弃
用户播放一首歌时,Levyra 会尝试找到这首歌可用的最高 320 kbps 音频源并使用,这项功能在项目里叫高质量音频路由。找到链接本身并不困难,困难的是确认它指向的确实是用户点选的那一首。
同一首歌在音乐目录里常同时存在 Album、Single、Clean、Explicit、Deluxe、Remix、Live、Acoustic、Instrumental、Sped Up、Slowed、Remastered 等多个版本,曲名与艺术家可能完全一致,仅时长相差几秒,只按标题检索的播放器很容易把 Live 版当作录音室版播放。因此核验构成了这套机制的主体,Levyra 会同时比对主艺术家、Featuring、专辑、歌曲时长、Explicit 状态、ISRC、发行版本,以及 Remix、Live、Acoustic 一类版本标记,任一字段不匹配即丢弃候选。
用户选择录音室专辑版本时,即使 Live 版候选的曲名与艺术家完全一致也不会被采用;原曲为 Explicit 版本时,Clean 版本同样不会被自动替换。项目对这一取舍的表述是,音质提升不能以播错歌为代价。
拿不到 320,就退到 160
320 kbps 并非每首歌都能拿到,Levyra 按实际可用情况分级处理,高码率路径可用时优先尝试 320,目标音频无法正常使用则回退到 160 或 96 kbps,候选未通过核验或替代来源异常时放弃这条路径。
项目说明里列出的另一条原则是,任何增强功能都不能成为正常播放的单点故障,高码率不可用时播放器退回普通播放,音乐照常输出。
换源不换歌
底层音频可能来自其他来源,但歌曲在 Levyra 中的逻辑身份保持不变,标题、艺术家、专辑、封面、歌词、播放队列、收藏状态与收听历史都不因换源而改变,变化的只有实际发声的那个文件。项目把这一层实现为播放路由,没有另建一套独立音乐库。
离线音频以标准 M4A 文件保存在用户指定的目录,支持 SD 卡位置,内嵌 Artist、Album、Artwork 与 Lyrics 字段,可用 VLC 等第三方播放器直接读取。
Android 走 ExoPlayer,Windows 走 libVLC
Android 端基于 Kotlin、Jetpack Compose、AndroidX Media3 与 ExoPlayer 构建,播放由独立的前台 Playback Service 管理,通过 MediaSession 接入系统,支持后台播放、锁屏控制、耳机控制、Android Auto 与无缝播放,播放核心运行在原生媒体栈上。
Windows 端是独立桌面应用,使用 libVLC,支持硬件加速、系统托盘、全局快捷键与下载管理。
播放链路还包含响度感知归一化、True Peak 限制器、10 段均衡器、Bass Boost、Crossfade 与 AutoEQ,AutoEQ 目录收录 8800 多副耳机与耳塞的校正参数,可按型号检索后一键应用。无缝播放会识别同专辑的连续曲目,在用户开启 Crossfade 时保持专辑本身的连续性。
收听统计只存在本机
播放次数、总收听时长、艺术家统计、每周活动、24 小时收听节奏,以及 7 天、30 天、6 个月、All Time 维度的数据,全部在本机计算后写入本地 SQLite。生成收听报告不需要建立行为画像,也不必将完整历史上传至服务器。
参数口径与合规说明
项目说明中注明,320 kbps 属于高码率有损音频,与 FLAC、24-bit / 96 kHz 等 Hi-Res 格式存在区别,项目未将其按无损标注。
Levyra 不托管音频,也不提供内容分发服务,官方页面写明项目与 YouTube、Google、Spotify、JioSaavn 等服务没有隶属或官方合作关系,具体合规性由用户自行判断。
项目信息
- GitHub:github.com/LUC4N3X/Levyra-deepsound
- F-Droid:f-droid.org/packages/com.luc4n3x.levyra
- 官网:levyra.dpdns.org
- 授权 GPL-3.0 | 平台 Android / Windows | 开发者 LUC4N3X