快捷指令(Shortcuts):一键听《一丝甜蜜》

大概三个月前,我的朋友王念北发布了一首由我作词作曲的全新单曲《一丝甜蜜》,国内的朋友可以在网易云音乐听到。但限于国内音乐平台诡异的锁区政策,海外的朋友收听并不是很方便,而上架海外的音乐平台对于这样一首免费单曲来说成本上又太不划算了。我想干脆放出一个链接,让大家直接下载收听好了。不过转念一想,时代毕竟变了,现在已经不流行网上下歌存到 mp3 里听了,那么有没有什么办法既不需要繁琐的操作,又不需要上架海外平台,而能让大家一键收听这首歌呢?独立的应用我写不了,用用 iOS 的快捷指令(Shortcuts)可能是行的。

实现方式及优化

因为快捷指令自带了 Play sound 这个 Action,所以可以想象这个捷径其实可以简单拆分为两步「获取音频文件 → 播放」。音频文件我提前存到了云盘里,所以只需要获取 URL 内容即可。所以一个比较简单的实现方式是「URL → Get contents of url → Play sound」。亲测可行。

但这个流程每次播放都需要将音频文件重新下载到本地,首先造成的后果就是播放之前会有卡顿,毕竟下载这样一个文件需要一些时间。其次,可能造成听众和网站双重流量损失。解决这个问题最直接的思路是,第一次播放时下载音频文件存到本地,第二次开始就直接播放本地文件,如果本地文件不幸误删,那么就重新下载。所以流程就变成了:

  1. 判断指定位置是否存在本地音频文件,如果是则直接播放。如果否进入第二步。
  2. 下载音频文件到指定位置并播放。

看上去很简单,但问题在于快捷指令并没有一个判断文件是否存在的功能。思来想去,最后终于找到一个剑走偏锋的方法,就是查找指定位置特定文件的数量,如果是 0,则说明该文件不存在,那么先下载后播放,反之就直接播放。如下图所示:

Shortcuts 查询文件是否存在的方式.jpg
Shortcuts 查询文件是否存在的方式

至此一个简单的「一键听《一丝甜蜜》」的快捷指令实现了。各位收听愉快。


快捷指令下载链接:一键听《一丝甜蜜》

【更新】感谢 Lepture 建议,大家可以直接在本页收听这首歌:

audio