iOS 版 SollinPlayer 已发布!
折腾了一个多月,终于把这个 iOS 音乐播放器搞出来了
最近终于把手上这个音乐播放器项目收尾了,从最开始的想法到现在能用,前前后后折腾了好几个月。趁着还有印象,写篇文章记录一下。
为什么要做这个?
说实话,App Store 上的音乐 App 已经够多了。但用了一圈下来,总觉得差点意思:
- 想听网易云的歌?得装网易云
- 想听 QQ 音乐?得再装一个
- 家里 NAS 上存了一堆无损?还得再找个支持 WebDAV 的
- 更别提有些歌这个平台有那个平台没有…
所以就想着,能不能做一个”全都要”的播放器?本地、在线、NAS 全支持,而且界面得好看。
先看效果
主界面
底部是常驻的迷你播放器,点一下就能展开完整播放界面。资料库这边可以按歌曲、专辑、艺术家来浏览,用起来和系统音乐 App 差不多的逻辑。
播放界面
播放界面花了不少心思。背景会自动取当前歌曲封面做模糊,看起来比纯黑舒服多了。左右滑动可以切换队列、封面、歌词三个页面。
歌词同步

歌词这块支持 LRC 格式的逐行同步,当前播放的那句会高亮显示。双击某一句可以直接跳到那个时间点播放,还挺方便的。
有些歌词时间不太准,可以单独给每首歌设置偏移量,调一次下次就记住了。
在线搜索

搜索这块接了网易云、QQ音乐、酷我几个平台的接口。搜到的歌可以直接播放,也可以批量选中加到歌单里。
音质可以选 128k、320k 或者无损,在设置里改就行。
WebDAV 播放

这个是我自己用得最多的功能。家里群晖上存了不少无损,配置好 WebDAV 地址和账号密码就能直接播放。
播放的时候是边播边缓存的,不用等整首歌下载完才能听。而且音频的封面、歌手这些元数据都能正常识别。
主题切换

内置了几套主题,除了经典的 iOS 风格,还有个新拟态风格和一个粉粉的可爱风格。粉粉主题还能把封面换成磁带的样式,挺有意思的。
播放界面的背景也可以自定义,除了封面模糊,还能选纯色、渐变,或者干脆自己传张图。
均衡器
加了个 10 段均衡器,内置了摇滚、流行、古典这些常用预设。喜欢折腾的也可以自己调。不过因为技术限制,均衡器只对本地文件有效,在线播放用不了。
歌单管理
歌单分本地和在线两种,本地歌单只能加本地歌,在线歌单只能加在线歌,这样播放的时候不会乱。
支持多选批量添加、滑动删除、批量删除这些操作,管理起来挺顺手的。
一些技术细节
整个项目是纯 SwiftUI 写的,最低支持 iOS 16。
播放核心用的 AVFoundation,均衡器那块用了 AVAudioEngine 做实时处理。WebDAV 流式播放踩了不少坑,最后用 AVURLAsset 配合自定义的资源加载器才搞定。
数据存储没用 Core Data,直接 UserDefaults 加 JSON 文件,简单够用。
还想做的
目前能想到的还有这些:
- CarPlay 支持
- Apple Watch App
- 歌词翻译显示
- 更多在线音乐源
- iPad 适配
最后
这个项目断断续续做了挺久,中间重构过好几次。现在总算是能拿出来见人了,虽然还有不少可以改进的地方,但基本功能都齐了。
最后更新:2026年1月
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!