# 用快捷指令打造一个自带系统级播放定时的睡眠闹钟

> 本文公开全文。

原文：https://utgd.net/article/20701

作为一个喜欢午睡以及睡任何觉都需要开着音频助眠的人，我经常性地需要设置一定时间的闹钟，再加上根据这个时间而设置的播放定时关闭（因为有时候会听一些怪谈故事，不想被突然的鬼叫吵醒）。我拆解了一下自己的需求，制作了这个可以快速设置闹钟并开启系统级播放定时的快捷指令。

🔗 快捷指令链接：点此安装

## 思路

延续我一贯的思考路径，用快捷指令实现的事情，能简化操作的就简化，能不跳转别的 app 就不跳转。

通过对自己日常设置闹钟\+播放定时的流程拆解，我发现这个流程是这样的：

这里面可以看到，核心流程其实只有一个，打开音频 app 并设置播放定时，那么我可以在不跳转别的 app 的情况下完成整套操作吗？当然没问题！

## 设置系统级的播放定时

我的睡眠是相对规律的，在晚上 10 点左右进入睡眠准备，手机会自动进入睡眠模式并开启早上 8 点的闹钟。在这个场景下我需要做的只是打开音频 app，并找到自己想用来助眠的音频，设置播放定时即可。但因为我每次听的音频不确定，有可能是小宇宙的播客；有可能是 B 站的某个怪谈分享；有可能是喜马拉雅里的有声书；有可能是网盘里下载好的讲座……这些 app 中总有一些是没有提供“播放定时”这个功能的。

在之前，“有没有播放定时”会成为我是否使用一个音频内容 app 的重要判断依据，但在最近我才了解到 iOS 的计时器是自带系统级的“停止播放”功能的。说来惭愧，这个功能在非常早期的 iOS 版本就有了，但我是最近才知道的，具体的设置方法是：进入系统自带的时钟 app，找到计时器，在即使结束时启用中选择最后一项“停止播放”。这样设置后，开启的任何计时器结束时都会执行“停止播放”这个操作。

有了这样的系统级支持，我就不需要再为某个 app 没有“播放定时”而纠结，也将核心流程简化为“进入音频 app 选择想用来助眠的音频”这一步。那么接下来，只要解决“在不跳转别的 app 的情况下就完成播放定时和闹钟的设置”就可以了。

## 在快捷指令中设置闹钟，并根据闹钟时长设置计时器

在快捷指令中设置闹钟和定时是非常简单的，系统直接提供了模块。我日常小睡基本上是半小时和一小时，偶尔会超过一小时。结合选择模块提供了三种预设，这里快捷指令原理非常简单就不赘述，有兴趣的可以直接下载快捷指令自行参考。

## 为快捷指令加入时间段判断

如果说这个快捷指令稍微有什么新意，那我觉得是通过词典模块为这个快捷指令加入了时间段判断。

仔细看上面的流程图，会发现其实在整个流程的最开始是需要进行一个判断的，那就是当前的睡眠是不是小睡。如果是，才需要设置闹钟；如果不是，则只需要设置播放定时，一般来说做两个快捷指令，当前什么情况就运行哪个也没什么，但我还是希望能用一个快捷指令搞定的事儿不要搞两个。

但快捷指令中并没有直接提供判断当前时间是否在某个时间段的功能，受群友 @Carl 的启发，将当前的小时格式化成两位数后，如果介于 5 和 16 之间，则判断是日常的小睡时间，否则是晚睡时间。

至此，整个快捷指令设置完毕，你可以将触发这个快捷指令的方式放在负一屏的小组件中，这样在启动完音频后，不用跳转别的 app 直接完成设置闹钟和播放定时的操作，一气呵成。

祝你睡个好觉！

---

[前往标准阅读页](https://utgd.net/article/20701?audience=web)
