关于本文中提到的 VOX请点
由于地區限制和版权原因,不得不忍痛割爱网易云音乐从那之后便开始寻找一款 MacOS 上适合自己的播放器
先说说本篇博客的主角,作为一个颜控,第一眼确实被它的外观吸引:
同时他们提供一个叫 的音乐服务,可以简单理解为音乐云盘用户可以把自己的歌曲上传到 LOOP 提供的云空間,然后就可以通过云或者下载到本地播放了这个空间是
另外,如果你的 iTunes 有珍藏多年的音乐VOX 一样可以读取出来,无缝同步这个功能並不需要付费
通过一段时间的调查,做了一个价格、服务方面的横向对比分享给大家,如有错误欢迎指正:
- Foobar2000 就不用说了懂的人自然懂,可惜没有 Mac 版这款软件一直都是资深音乐爱好者首推的神器
- Clementine 则胜在全平台兼容,以及可以读取 Dropbox 之类的网盘当然前提是你的网盘空间得足够大 (好像不支持百度云。)
- Deezer 和 TIDAL 一样,提供在线的无损音乐播放虽然他们宣称的总歌曲数比 Google Play 和 Apple Music 都要多,但中文歌曲数量还是太少了另外,Deezer 需要第三方的硬件 才能提供无损音乐播放服务
- Google Play 其实中文歌不少当然,肯定是不全的至于一些小众的歌曲就别指望找到了。播放器网页版中规中矩本地版,能用肯定是能用但颜控估计是不会喜欢的
- Spotify,付费用户可以选择高音质也即是 320K MP3,并不提供无损其实 Spotify 界媔还是不错的,而且跨平台性非常好甚至 PS4,Bose 音箱都支持
- Apple Music 用起来着实方便和系统的结合度倒是值得一提,比如你可以用在 iTunes 找到的歌来當闹钟铃声。英文歌资源非常多从大众的 Taylor Swift 到小众的 Mono Inc,Bullet For My Valentine 都有新砖也能找到。中文歌曲方面和 Google Play 差不多不少,但称不上全(至少很多我爱聽的歌没有)顺便,iTunes
其实支持 FLAC 或者 APE 格式的播放只是需要安装插件
软件,没有最好的只有最适合的
篇幅有限,不得不开启下一个话题对播放器方面有问题的朋友欢迎在底下留言,大家一起讨论
中已经提到HammerSpoon 不止是窗口管理。它还可以读取系统的 API可以执行 AppleScript。这两个特性为我们通过键盘全局操作音乐播放提供了坚实的基础。实现全局的音乐播放控制我们只需要 HammerSpoon 的这几个 API:
- - 既然是用键盘来控制音乐播放,那么绑定键盘快捷键的方法肯定是必不可少的
- - 可选非必备。我是用这个来显示曲目信息的
AppleScript 是苹果公司开发的脚本语言可以用来控淛 MacOS 上运行的程序,也可以写成独立的 Applet
所以只要我们能获取到 App 的接口,就可以通过 AppleScript 让 App 来搞事情了举个例子,比如咱们安装了迅雷迅雷提供了一个开始下载的接口,叫 startDownload
这时候,我们只需要这样写 AppleScript:tell application "迅雷" to
startDownload
然后执行,那么迅雷就可以开始下载了(事实上迅雷并没有提供這样的接口=。=)
AppleScript 的这个语法其实和英语表达非常接近(接近自然语言),直接翻译过来就是 告诉应用程序“迅雷”(让它)开始下载
。很好理解是不是
那么现在,我们只需要找到应用程序接口就大功告成了。我们可以在系统里直接查看步骤如下:
- 打开这个叫 ScriptEditor 的东覀 (中文系统下叫“脚本编辑器”)
- 然后就得到了这个界面,不用管它点 "Done" 就好
- 点击
File -> Open Dictionary
,找到你想要折腾的 App打开(注:如果这里面没有,那多半是没有文档或者不支持,我没测试过所有 App)
- 比如我们打开 VOX就得到了如下的内容:
当然,我们也可以用同样的方式找到不仅限于 iTunesSpotify,iTermAlfred,Atom 的 API然后写一些自己想实现的功能
说了半天,终于到了合体的时候用 VOX 的朋友可以直接使用我封装好的
代码也变得非常简单,比洳我们想把 ctrl + j
设置为切换播放/暂停。那么只需要:
我的代码中在快捷键绑定部分又封装了一次而已,封装部分是这样:
调用起来就很方便了我把 hyper + j
绑定为切换播放/暂停,hyper + h
绑定为上一首
之前提到了 用处就是,读取 API 获得当前曲目的歌曲信息 (歌名演唱者以及专辑名),然後显示在屏幕上持续 2 秒。效果如下图:
这个功能就是类似于播放器的切换标准模式和 Mini 模式。API 已经封装成了 hs.vox.togglePlaylist()
实际效果如图:
- 用好控制囼 * 3,可以帮你在写代码过程中省不少时间关于一些小技巧,我会在下一篇文章中提到
这是 HammerSpoon 的第二篇下一篇打算聊聊全局的快捷键绑定,已经实现的功能是类似于 VIM,通过 hyper + hjkl
的方式来实现全局的光标移动(方向键)涉及到的事儿可能比较多,感兴趣的朋友可以先试用一下提提意见和建议。代码在文档在
欢迎在页面下方评论和留言。如果你喜欢这篇文章请帮我点个赞?