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

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 买断,感谢支持。

1442 次点击
所在节点    分享创造
37 条回复
yyluxe
15 小时 42 分钟前
求个激活码 eXlsdXhlQDE2My5jb20=
aslehx
15 小时 15 分钟前
@yyluxe 已发送,请查收
hpliu
14 小时 59 分钟前
MU3-W6VS-3884-45KA 已用,谢谢。
@aslehx #18
BetterSci
14 小时 3 分钟前
求个激活码 bWVldGNoZW1AcXEuY29t
aslehx
13 小时 59 分钟前
@BetterSci 已发送,请查收
noming
13 小时 17 分钟前
MU3-HQSC-1GR6-ATPE ,已使用,谢谢!
输入地址时必须要添加 http://
aslehx
12 小时 48 分钟前
@noming 感谢反馈🙏,首次登录流程优化好了,会随下个版本一起发布
hilcrhyme
12 小时 36 分钟前
楼主还能求个激活码不? 可以的话 tuco@vip.qq.com 谢谢
aslehx
12 小时 31 分钟前
@hilcrhyme 18 楼追加的 10 个还有好几个没用的,比如第二个 1ZT6 结尾的码,你可以试一下
hilcrhyme
12 小时 12 分钟前
MU3-EXBD-HPQB-QB52 已使用。

@aslehx 谢谢,楼主。
ershiwo
11 小时 57 分钟前
MU3-DZ3G-GR02-RASC
已使用,谢谢楼主
ershiwo
11 小时 8 分钟前
发现两个问题,一个是不支持 navidrome 的媒体库功能,如果根目录是一个媒体库,里面某个文件夹划为另一个媒体库,会显示多个重复的专辑或者歌曲。再一个转码触发好像有问题,配置好服务端转码后,有些 wma 文件仍然无法播放,但在 Dsub 里可以正常转码播放。另外转码这个事情是不是可以优化下策略,例如 WiFi 下播放不转码,以及本身就是低码率的 mp3 文件不再二次转码,直接缓存播放,只有无法识别的格式才考虑服务端转一次码?
aslehx
10 小时 50 分钟前
@ershiwo 感谢反馈🙏,两个问题本地均已复现,补丁会随下个版本一起发布,可以+q 群:1126454632 ,有问题随时反馈,我可以迅速响应
Mystery0
8 小时 25 分钟前
@aslehx #18 1.1.0 版本好用多了😁现在就差桌面歌词就比较完善了(对我来说)。刚刚更新 1.1.0 版本后弹了 play 的拦截(只是 play 说不认识这个开发者/签名,可以点 install anyway 继续安装)
aircjm
5 小时 17 分钟前
MU3-SRYH-4G41-46PV 已经使用,感谢
aslehx
3 小时 6 分钟前
@Mystery0 👍桌面歌词正在开发了,另外把桌面卡片的逻辑重构一下,再一起端出来,可以进群,以后有问题可以群里反馈
followadc
1 小时 34 分钟前
大佬能给我来个吗 NjQ2ODM2NDE1QHFxLmNvbQ==

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

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

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

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

© 2021 V2EX