一款无联网,纯本地,车机友好的极简安卓音乐播放器
一切始于差不多 10 年前提车时 4S 店给预装的大屏安卓车机,系统是安卓 5.1 ,屏幕 10 寸 1024x600 大果粒,好在还算良心的留了一个 USB 口能自己装 APK 。不过这么几年来试了好几款大厂所谓的车机专用版音乐播放器 APP ,无一例外有以下问题:
1. 天然对纯本地播放这个场景不是很友好,毕竟是为了卖会员,但这类 APP 大部分通常只有一些早期的老版本勉强还算处于能用的状态,迭代几个版本后几乎又成了手机版,嵌入了扫码登陆,联网,各种 VIP 开通提醒弹窗和小淘宝;或者干脆就把自家的 HD 版直接暴力移植,90%以上的功能用不上,体积也是日益膨胀;
2. 车机通常是低端处理器+老版本安卓,要么最低 API 设置的太高安装不上,要么就是没有去除老版本安卓自带的黑大粗状态栏,UI 违和或丑出天际;
3. 即便只是想安安静静当个本地音乐播放器来用,这类应用均在对文件 ID3 信息处理时会出现诡异问题,经常出现诸如不显示专辑封面/显示混乱等问题。
本人算是个 ID3 遗老吧,虽然现在早也转向听流媒体,甚至买了一个支持 Carplay 的安卓盒子,但对于车机这种场景或者极端无网络状态下,一款纯本地音乐播放器也算个有个残念。但因为完全没有安卓开发经验,无奈只能苟着用了 QQ 音乐车机的某个老版本好多年。
感谢 AI ,让自己手搓一个安卓音乐播放器变成现实。花了一天多的时间安装 Android Studio ,上手 Kotlin 和 Compose ,设计 UI ,AI 辅助编码,勉强算是搓出来了(怎么感觉有点像 V 站前段时间推广某 C 开头编辑器那味了🥲,声明:本人未充值也不推广任何 AI 会员,代码基本上是免费版的 Grok ,ChatGPT 和 Copilot 辅助生成)
应用无需联网权限,准确的说无需任何权限申请(除了一个非显示的震动权限外),仅有本地音乐顺序播放一个功能,当然开头提到的全屏,准确读取 ID3 信息等作为一开始就必须解决的痛点经过测试都没有问题。API 支持:从老掉牙的安卓 5.1 到最新的安卓 14 ;另外,我自己的车机,AVD 虚拟机,两部安卓备用机,目前已有的功能和布局经过测试都没有问题,我已经高强度挂机使用了几天,暂时也没看到任何内存泄漏和应用奔溃的情况。最终打出来的安装包体积约为10M左右,虽然距离想象中 5M 左右的小而美还是有点差距(因为其实我只有两个 Activety ,res 资源加起来也只有不到 200k 大小)。
使用方法: 请先保证本地有一个专门存放音乐文件的文件夹,放置一些 ID3 信息完备的音乐,下载并导入 APK 安装,首次进入应用会提示设置本地音乐文件夹路径,比如/SDCard/Music/,设置后就会返回播放界面顺序播放该目录下的音乐,后续设置可通过专辑封面那里一个不太明显的设置图标点击进入。
如果你想给老安卓车机安装一款纯本地的音乐播放器,或者打算在手机上尝试一款极简的本地音乐播放器,可以下载试用。
下载地址:
https://wwpv.lanzouw.com/i2C4p2q5nqgj 密码:1he0
应用在车机上截图:
这里参考了 QQ 音乐车机版对封面的模糊处理,显示一张模糊大图+一张清晰小图,但 QQ 音乐车机版的处理比较激进,不管什么封面几乎都是高度模糊近乎纯色,我尝试减弱了一些模糊的效果,让一部分封面能大概看到一些轮廓。
以下为手机截图:
当然可能不同分辨率或刘海屏最终的渲染效果会略有差异。 另外因为现在的手机通常都比较修长,宽高比甚至接近或超过 2:1 ,这会导致右侧文件列表那里会显示的比左边播放区域长很多,因为一开始设计的时候,就确定了左边显示一个方形的区域渲染专辑封面,竖屏( portrait )状态下会隐藏文件列表,类似网易云音乐。
纯本地播放,ID3 强迫症,适配车机,这些冷门需求组合到一起注定是个不会太大众的产物,权当是一次对 AI 辅助编程和各家 AI 现状的探究吧,当然这些感受可能会非常主观,这里就不展开赘述了。