之前一直在用4.1.1的上古版本网易云,简洁好用。但是在六月底就开始莫名掉登录,然后再登就登不上去了,提示“服务器发生错误”,上酷安看了下并非个例,估计是网易开始限制旧版本客户端登录了。然后找了个内置某模块的6.0版本,多了一堆乱七八糟的东西就不说了(这还是在我使用了模块的前提下)。最受不了的是心动模式,我既然选择播放我喜欢的音乐,那就代表我只想听歌单里的歌,如果想听新歌我可以去日推/私人FM,如果只是一个独立的按钮也就忍了,偏偏要放在播放模式里面,如果想在循环播放和随机播放之间切换,那就必然要看数遍愚蠢的加载动画。

其他平台也尝试过:QQ音乐基本上是一路货色;Spotify导入我现在的歌单,1176首中有369首不存在;Youtube Music网络出点问题就听不了了,不太安心。于是最终还是决定本地化。

下载

找了很多工具,但是大部分都只能下载非VIP歌曲,所以还是自己写了一个:ncm_down。在此推荐一下pyncm这个库,非常好用。

采用的是先保存歌单中所有歌曲基础信息到本地数据库,然后再从数据库中读取并下载的模式,这样更容易应对下载突然中断等状况。在使用过程中发现可能是下载过多,遭遇了疑似风控,无法继续下载,此时只需要停止下载,过一会再继续下载即可。

播放

本地音乐播放器我也尝试了很多:APlayerRetro Music Player等,最后留下了Musicolet,并在此强烈推荐给向我这样的非HiFi爱好者(木耳)。

这是一个完全离线的轻量级音乐播放器,在AndroidManifest.xml中甚至没有申请联网权限。UI简洁优美,虽然比不上Retro Music等,但是功能相当齐全,很多小细节足见作者的用心,例如进度条尺寸适中,拖动非常舒适;记住长曲目的播放位置,再次播放时可以选择是否继续等,其中我最喜爱的是音量为0时自动暂停播放,音量恢复后自动继续,非常实用。