StarPlayrX 回来了:原生 Mac 菜单栏应用、Xtra 频道与 1.1.1 版本
今天,Agent! 把旧代码变成了一款原生 SwiftUI Mac 菜单栏应用,完成了我一直没加上的 Xtra 音乐频道的逆向工程,并在不到半天的时间里发布了经过签名和公证的 1.1.1 版本。
立即下载:StarPlayrX for Mac 1.1.1(已签名并公证,支持 Apple 芯片和 Intel,需要 macOS 13 Ventura 或更高版本)。网站是 starplayrx.com,源代码在 GitHub 上。
今天我让 Agent! 做一个 Mac 菜单栏版本,2 分钟它就做出了一个能用的版本。
两分钟,但有先发优势
说句公道话,Agent! 并不是从零开始的。它复用了我那个直接与 SiriusXM 通信的库 StarPlayrRadioKit,这是一个 Swift 包,包含 API 层和一个小型本地 HLS 流媒体服务器。看起来它居然还能用。
所以这次的工作是给旧引擎套上一个新应用:一款没有 Dock 图标的 SwiftUI 菜单栏应用,带频道列表、正在播放信息,密码保存在 macOS 钥匙串里。StarPlayrXMac 的第一次提交是在今天下午 12:45。
我一直没做完的 100 个 Xtra 频道
Xtra 频道是 SiriusXM 的额外音乐频道,编号从 1000 开始。我以前开始做过它们的逆向工程,但一直懒得把它们加进应用里。Agent! 看到我已经起了个头,又花了几分钟就把它完成了。
Xtra 频道的行为和普通频道不一样,所以大部分来回调整都发生在这里。没在播放的频道不显示接下来要播什么。专辑封面在显示新专辑之前会先闪一下上一张。调到某个频道时,播放的是一首新挑选的歌,而不是列表里显示的那首。每个问题都是一个小小的检查点:我描述看到的情况,Agent! 修好它,我再试一遍。
30 分钟的 UI 测试
然后我花了大约 30 分钟在应用里到处点,过一遍各种修复,大多在它自己的 API 里:滚动条离内容太近;在列表改成懒加载之前,滚动一直很卡顿;还有搜索 "xtra" 或 "music" 时需要显示 Xtra 频道。
最花时间的部分,其实就是听音乐,以及做一个新网站。
1.1.1 有哪些内容
- 常驻菜单栏(📻),没有 Dock 图标
- 搜索频道、艺人和歌曲
- 显示当前频道以及列表中每个频道正在播放的内容
- Xtra 频道(1000 及以上),可以用 "xtra" 或 "music" 搜索;调台后播放的就是列表里显示的那首歌
- 1.1.1 修复了切回 Xtra 频道时的问题,现在同样会播放列表里显示的那首歌
- 可以用键盘媒体键和控制中心播放和暂停
- 美国和加拿大的频道阵容
- 为 VoiceOver 打造
- 通用版本,使用 Developer ID 签名并经过 Apple 公证
你仍然需要一个有效的 SiriusXM 订阅。
不到半天
从 12:45 的第一次提交到 15:41 的 1.1.1 提交,git 日志显示的时间还不到三个小时。再加上发布、公证和新网站,把一个原生 Mac 版本带到 Mac 上,也还是不到半天。没用 Catalyst,加了一项新功能,还发布了一个版本。
我希望能有哪位创始人注意到这件事,不过我猜,这个星球上每个能做 agent 的人现在都在做同样的事。尽管如此,我觉得我的工具已经非常成熟了,它的 CLI 版本也会迎头赶上。
唯一一样它不肯逆向的东西
有意思的是:我现在几乎什么都能逆向,唯独它不肯交出 Justin Bieber《Baby》的歌词,哪怕是生死攸关的情况也不行。那些你只能自己调台去听了。