基于 KMP 实现一个跨平台音乐播放器
摘要:LynMusic是一款基于KMP技术开发的跨平台音乐播放器,支持安卓、iOS、macOS等多平台。开发者利用AI编程工具Codex完成了开发,解决了歌词搜索难、平台兼容性等问题。该播放器支持本地音乐、云盘导入、歌词分享、定时播放等功能,并适配车机、电视等设备。采用Kotlin Compose开发,相比Web方案性能更优。项目已开源,开发者分享了使用AI编程的心得,包括需求沟通、代码维护等经验
基于 KMP 实现一个跨平台音乐播放器 - Wesley’s Blog
计算机先驱艾伦·凯说过“真正认真对待软件的人应该制造自己的硬件(People who are really serious about software should make their own hardware)。” 乔布斯也曾经在发布会引用过这句话。硬件其实还是很难自己一个人设计并制造的,但在 AI 时代,自己设计并开发完成一款软件,难度已经大大下降了。作为一个安卓开发者,我全程使用 codex 完成了这个多端播放器的开发。
为什么做这个播放器
第一,虽然市面上已经有很多音乐播放器了,但搜索歌词太难用了,有些歌还不一定能搜到;第二,想学习一下 KMP;第三,因为有了 codex 这样的编程工具,实现难度大大下降;第四,可以自主决策功能和界面。
LynMusic 聆听音乐
跨平台,支持安卓(含车机、电视)、iOS、macOS,Windows,Linux。(ps:由于苹果需要付费的开发者账号,目前ios不支持在 App Store 下载,只能自己编译使用)。
采用 kotlin compose 进行开发,不同于一些音乐软件采用web跨平台方案,kmp 在安卓和 ios 能获得更加好的原生性能体验。
支持导入本地文件夹、Samba、WebDAV、Navidrome 里面的音乐。一些支持 WebDav 的云盘也可以,比如 pCloud、坚果云、阿里云等。强大的歌词搜索功能,支持自己引入几乎市面上存在的 api 源。
歌词分享功能,可以自定义分享字体。
支持定时播放、投屏等。TV 端还可以作为 render,接收音乐和视频投屏。
支持离线下载。如果在外面不能内网穿透到家中的服务器,还可以把 navidrome 等音乐下载到本地,聆听音乐时支持选择已经下载的音乐。
音乐标签。可以自己编辑音乐的元数据和封面等。
自定义功能多,比如是否启动自动播放、navidrome 多档音质选择、显示大小、自定义主题等。还可以在喜欢列表,按歌手、专辑来筛选播放。
产品图
手机
平板或者桌面端






车机


TV




作为投屏渲染端,可以自动匹配歌词:
开源地址
https://github.com/wesley666/LynMusic/
桌面版本要先安装 vlc 播放器,LynMusic 使用 vlc 的接口播放音乐。
mac 版本需要执行命令才能打开:xattr -dr com.apple.quarantine /Applications/LynMusic.app。但自己编译的版本不需要。
欢迎使用和提建议。
Vibe Coding 的一些心得
尽可能采用 sota 模型 和 官方 api,可以节省大量时间,也不用担心中转站的猫腻。
由于 codex 的 plus 额度缩减,为了满足五一期间的开发 token 需求,我还开通了 100 刀的 pro 会员,目前有 10x 的额度,即使使用 fast 模式也基本用不完。
尽可能使用 plan 模式来开发和修 bug,除非你能把话说的很清楚,否则需要多轮对话来沟通清楚需求。
AGENTS.md即使什么都可以没有,也得加上一句:修改代码前要向我二次确认,不要在排查问题阶段擅自改代码。
AI 的上下文有限,你可能以敏捷开发的方式很快就开发好了一个应用,但如果要变成一个可维护的工程还是需要做好顶层设计的,使用瀑布式开发。
排查问题要结合日志,不能只靠 AI 逻辑分析。
AI 有时候是可能降智的,要做好领路人和审计。
更多推荐




所有评论(0)