[送码] 给 Navidrome 写的安卓播放器 Mu3ic:现代 UI、智能歌单、混音、断网也能听,基础版免费

22 小时 1 分钟前
 aslehx

我的歌放在家里服务器上的 Navidrome 里,五千多首,标签都是自己整理的,上个月还让 Agent 批量标准化一遍。电脑上听没问题,手机上一直没找到用着顺手的客户端,于是便有了Mu3ic。

先说明一下:Mu3ic 是播放器,连的是你自己搭的服务器,不提供任何音乐。Navidrome 之外,兼容 Subsonic / OpenSubsonic 的服务端也能连。原生 Kotlin + Jetpack Compose ,安卓 7.0 以上,安装包 8 MB 左右。

为什么自己写

安卓上的 Subsonic 客户端其实不少,我前后装过好几个。

音流功能比较全,但界面不够现代,用起来不顺手。界面现代的是 Symfonium ,功能也全,可它同时要管本地文件、网盘、Plex 、Jellyfin ,对 Navidrome 的适配反而一般,缓存机制也不好用;设置项多到要专门花时间调,买它还得走 Google Play 。开源的那几个,要么界面停在好多年前,要么能做的事太少。

我要的其实就几样:界面好看、好用,天天要用的东西,光这一条就筛掉了大半播放器;打开要快;只管连服务器听歌,别的不管。所以 Mu3ic 从一开始就定成只做流播,不扫描手机里的本地文件。手机上存的缓存和下载,都只是为了断网的时候还能接着听。

写到现在,我觉得它和别的客户端最不一样的有三点:

下面按我写它时想解决的事一件件说。

曲库大了,翻起来要等

五千多首歌,每翻一页都要等服务器返回,滑快了就是一片空白。

Mu3ic 在手机上存一份曲库索引,整点和服务器同步一次。按单曲、专辑、歌手翻都是读本地,滑多快都不用等。搜索也是这三个维度一起出。

打开 App 先看到的是首页,三排卡片:

再往下是听歌统计:今天播了多少、连续听了几天、这周的曲线,按住曲线能看某一天和上周同一天的对比。

外语歌,想知道这句在唱什么

歌词逐行滚动,外语歌下面直接跟着中文翻译(服务器上的歌词带翻译就能显示)。

拖进度条的时候,手指停的那一句会浮出来:第几句、原文、译文。想回到某一句,看准了再松手就行,不用来回试。歌词这些都是基础版就有的。

地铁里、电梯里,网一断就停

听过的歌边播边存,还会提前缓存下一首。连不上服务器的时候,接着播缓存里的;换到一首没缓存的,等 10 秒还连不上就跳到下一首有缓存的。

打开离线模式之后,App 一个网络请求都不发。没缓存的歌会变灰,能播哪些一眼就知道。

专辑和歌单页,想好看一点

专辑、歌手、歌单页都把封面做成页头,名字和按钮收在一座浮岛里。歌单里如果整张专辑都在,会并成一张专辑卡,不用一首首往下翻。

播放页,想要安静一点,或者信息多一点

播放页分极简和详细两档,每档两款皮肤,一共四款:

衬底和数据两款的进度条画的是这首歌的真实波形,副歌在哪一眼就看到。每首分析一次就存下来,下载过、缓存过的歌直接用本地音频算,不多费流量。这两款皮肤和波形属于 Pro ;滑封面和标准是基础版的,进度条是一根细线。

智能歌单,不想去服务器上写文件

Navidrome 本来就支持智能歌单,但要在曲库目录里放一个写满 JSON 规则的 .nsp 文件。Mu3ic 里可以直接新建:选一个模板(年代 × 语言、歌手代表作、流派、最近 N 天、高分,或者照着一个现有的歌单改),再加减条件,「满足全部」还是「满足任一」点一下就切。编辑的时候底部实时显示预计有多少首,这个数用的是手机上的曲库索引,不用等服务器。

自己建的智能歌单,以后可以在「⋯」里接着改规则。来自 .nsp 文件的那些照样能听,只是规则改不了(改了也会被下次扫描覆盖)。

浏览和播放智能歌单是基础版就有的,规则编辑器属于 Pro 。

混音,每次听都不太一样

混音是 App 自己按打分采样出来的播放列表,点一次重新抽一次:

混音很吃曲库标签,标签整理得越好越好用,具体要哪些标签写在后面的「注意事项」里。混音属于 Pro 。

免费和 Pro

基础版是完整的播放器:不限时,没有广告,不用注册。上面说的曲库、搜索、首页、歌词、缓存和离线模式、详情页、两款免费皮肤,都是基础版就有的。另外还有歌单、收藏、评分同步回服务器,听歌记录回传,播放键长按停止,应用内更新(下载后先校验签名再装)。

Pro 解锁这些:

App 里可以直接买,跳到手机浏览器用支付宝付。首发一个月推广价 ¥18 (原价 ¥38 ),到 11 月 5 日。一次买断,一码一机,每年可以自己换绑两次设备。

注意事项

Navidrome 版本:大部分功能走的是 Subsonic 接口,老版本也能用。下面几项用到了 Navidrome 自己的接口,要 0.64.0 或以上:

版本不够时这几项用不了(建智能歌单会提示服务器不支持,语言那一节混音不出),别的照常用。

混音要哪些标签:

流派和语言不足 20 首的不单独出卡。因为太依赖标签,底栏的「混音」 tab 默认是关的,在设置 → 底栏里打开;首页的四张混音卡不受这个开关影响。

领码

先在 1 楼放 10 个 Pro 码,先到先得;用完了会在楼里再放一批。一码一机,激活后就绑在这台手机上了,所以一人拿一个就好。用掉了麻烦在评论里回一下用掉的码,后面的人就不用白试了。

激活:设置 → 关于 → Pro → 输入激活码。

隐私

最后

有问题、有想要的功能,直接在这里回我就行。如果您喜欢,可以 APP 内购买 Pro 会员解锁完整体验,首月仅需3818 买断,感谢支持。

1233 次点击
所在节点    分享创造
34 条回复
aslehx
22 小时 1 分钟前
MU3-56ED-7369-M7NX
MU3-EM73-KYSY-6KK3
MU3-RM13-KADZ-PVZ4
MU3-96C4-0RAK-PDS3
MU3-QRWC-G3ZH-WAA1
MU3-95Z8-GVR8-5F9A
MU3-KHF0-0B06-QHVE
MU3-9CJF-1QM6-95G1
MU3-W4GD-4VEK-FN3A
MU3-RVCE-NQEJ-ZQKE
DeliMG
21 小时 53 分钟前
MU3-EM73-KYSY-6KK3
已用
sleek7671
21 小时 51 分钟前
MU3-95Z8-GVR8-5F9A ,感谢,已经使用
marcoseaver
20 小时 22 分钟前
MU3-96C4-0RAK-PDS3 已用,谢谢。
aslehx
20 小时 9 分钟前
@marcoseaver @sleek7671 @DeliMG
感谢支持🙏,后面会持续更新,更新会在 APP 内推送
snakelhb
20 小时 6 分钟前
MU3-RVCE-NQEJ-ZQKE ,感谢,已经使用
lockheart
19 小时 58 分钟前
MU3-RM13-KADZ-PVZ4 已用,感谢
aslehx
19 小时 0 分钟前
@snakelhb @lockheart
感谢支持🙏
aslehx
18 小时 58 分钟前
目前第一批赠码还有:MU3-56ED-7369-M7NX ,未被使用,有需要赠码的可以留言,明天会再放一批 pro 激活码
Mystery0
18 小时 4 分钟前
MU3-56ED-7369-M7NX 已用,谢谢
Mystery0
17 小时 56 分钟前
初步用了一下,很好用,不过歌词部分似乎缺失的比较多,例如播放页面不能切换成显示歌词(不显示专辑图片),现在的歌词显示是弹出式的,点开不能滚动查看,返回就关闭了,桌面歌词也没看到(手机上的话桌面歌词算是刚需了)。整体还是比音流好多了,不管是界面还是流畅度这些。
app 目前只能网站和 GitHub 下,有打算上 play 吗?
Mystery0
17 小时 52 分钟前
还有一个严重问题!设置界面那些配置项点击事件和滚动冲突很严重,例如我想要滚动设置界面,但是因为第一下点击按到了那些按钮上,结果最终响应事件是点击而不是滚动,导致我要滚动必须要严格点到非按钮区域,很难受
aslehx
17 小时 32 分钟前
@Mystery0 谢谢使用,也谢谢指出这些不足。目前歌词主要是按我自己曲库的情况做的,确实不够完善。
- 点播放页的封面可以打开完整歌词,支持滑动、点某一行跳转和双语切换。不过手动滑动后停 3 秒会自动回到当前行,您说的「不能滚动」可能就是这个,我会改得更顺手,也会加一个能一直停在歌词上的显示方式。双语歌词目前支持两种格式:同一时间上原文和译文各一行,或者原文、译文分成两份各自带时间轴。歌词是从 Navidrome 读的,如果您那边有显示不对的歌,方便的话发个例子给我,我针对性适配。
- 您对桌面歌词的需求已经记录在案,会和桌面插件的优化一起做。
- Play 的话想上,但没有经验😂,准备先优化一轮再考虑。您有经验的话也欢迎指点一下
aslehx
17 小时 21 分钟前
@Mystery0 好的收到,本地已经复现了这个问题,明天会出补丁,APP 内会推送更新
ffalex
16 小时 26 分钟前
求一个:bmllcmlza3lAZ21haWwuY29t
aslehx
8 小时 22 分钟前
@ffalex 已发送,请查收
btpuadom
8 小时 5 分钟前
有考虑搞 ios 吗
aslehx
7 小时 57 分钟前
v1.1.0 已上线,可以直接点击直链下载:https://dl.robb3n.site/mu3ic/Mu3ic-stable.apk ,已安装的用户可以打开设置拖动到底部,点击检查更新来获取更新,更新内容如下:
· 新增 恢复购买:同一台手机重装后,在解锁页一键找回 Pro
· 新增 已激活的解锁页可以查看、复制激活码,并说明怎样换到新手机
· 新增 设置最上面的 Pro 入口:基础版是解锁横幅,已激活是一条状态条
· 调整 基础版的播放进度条改为细线;衬底、数据两款播放页皮肤随整首波形一起归入 Pro
· 修复 自动跳过广告的工具会误点更新提示里的「跳过此版本」
· 修复 上下滑动页面时,手指斜着划过分段按钮或倍速刻度尺会被误切换 @Mystery0
· 新增 活动赠码在解锁页标出「赠码」,并说明只能在激活的那台设备上用
· 改进 更新提示里的更新说明改为分条列表,可切换按类型查看
· 改进 更新失败时的手动下载链接改指向新主页 mu3ic.xyz
另附 10 个激活码:
MU3-HQSC-1GR6-ATPE
MU3-3PDZ-Z7RT-1ZT6
MU3-215F-TME3-2X7W
MU3-XVQ4-XNH4-BQX6
MU3-W6VS-3884-45KA
MU3-5MPY-78CZ-3BAV
MU3-AY14-GYVG-NMKD
MU3-DZ3G-GR02-RASC
MU3-SRYH-4G41-46PV
MU3-EXBD-HPQB-QB52
用掉了麻烦在评论里回一下用掉的码,后面的人就不用白试了,谢谢🙏
qiuyufeng
7 小时 50 分钟前
MU3-AY14-GYVG-NMKD
已用,感谢
aslehx
7 小时 47 分钟前
@btpuadom 看了一下目前国区上架音乐类应用备案主体需要企业,且需要相关许可证,合规成本有点高了,目前是个人开发😂上架 ios 有难度

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1246531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX