呼吸训练计时器

按吸气、屏息、呼气三段节拍引导你做呼吸练习,内置 4-7-8 呼吸法与盒式呼吸 4-4-4-4,可设循环轮数,每段切换用提示音,剩余时间按时间戳差实时计算。

00:19
吸气

使用方法

  1. 打开页面已预载「4-7-8 呼吸法」:吸气 4 秒、屏息 7 秒、呼气 8 秒、呼后屏息 0 秒,循环 4 轮。直接点「开始」就能跟着提示音做。
  2. 想换方法,下拉「呼吸法预设」选「盒式呼吸 4-4-4-4」,四段会一起变成 4 秒,每轮 16 秒;选「自定义」则手动填每一段。
  3. 在任意数字框里按 Enter 会直接开始或暂停。建议先开「节拍提示音」,每段切换时浏览器会响一声,吸气高音、屏息中音、呼气低音。
  4. 中途想停下点「开始」变「暂停」;想回到默认示例点「载入示例」。轮数走完会停在「完成」并提示总时长。
  5. 把灯调暗、背挺直,先呼尽肺里余气再开始第一轮吸气,比硬着头皮计时更容易进入状态。

这个呼吸训练计时器能解决什么问题

一是把「我要放松一下」变成可执行的节拍。人对「还有几秒吸气」的判断远不如看一个倒计时牌准,呼吸训练计时器把抽象的放松意图换成「吸气 4 秒、屏息 7 秒、呼气 8 秒」的具体动作。

二是固定呼气长于吸气,帮副交感神经占上风。4-7-8 里呼气 8 秒比吸气 4 秒长一倍,延长呼气是被反复提到的让心率慢下来的做法;盒式呼吸四段等长,则适合在焦虑时把注意力锚在「数拍子」上。

三是让「练了多久」可计量。一轮 19 秒、一圈 4 轮约 1 分 16 秒,页面上的「已完成轮数」只增不减,睡前做 8 轮就是明确的 2 分 32 秒练习量,比「好像做了会儿」可靠。

本页不做这些事:不统计你每天的呼吸曲线并画图,不连蓝牙血氧仪,也不播放背景白噪音。它只负责把节拍走准、在切换点给提示音,并把总时长交回给你。

原理:三段节拍与 performance.now() 时间戳差计时

每段时长怎么来。呼吸法里最通行的是 4-7-8(由 Andrew Weil 推广,源自瑜伽调息):吸气 4 秒、屏息 7 秒、呼气 8 秒,三段相加 19 秒为一轮;盒式呼吸(box breathing,美军与消防常用)四段等长 4-4-4-4,相加 16 秒为一轮。本页把这两条写死成预设,自定义时四段各自独立。

总时长就是加法。一轮秒数 = 吸气 + 屏息(吸后) + 呼气 + 屏息(呼后);总秒数 = 一轮秒数 × 轮数。4-7-8 跑 4 轮 = 19 × 4 = 76 秒(约 1.27 分钟),盒式跑 4 轮 = 16 × 4 = 64 秒(约 1.07 分钟)。这条公式没有近似,直接相乘即可。

计时用 performance.now() 时间戳差,不用计数器自减。开始一段时记下 phaseStart = performance.now(),之后每 200 毫秒刷新一次,剩余时间一律现算:left = dur - (performance.now() - phaseStart)。performance.now() 是单调时钟,单位毫秒、精度可达亚毫秒级,切换标签页被节流只会影响「多久刷新一次」,不影响「真实过了多久」。

为什么不直接每秒减 1。前台里 setInterval(200) 每分钟约触发 240 次,单次回调最多被事件队列推迟约 4 毫秒;用时间戳差,1 分钟误差趋近于 0,只受取整粒度约 ±4 毫秒影响。若改用「每次减 1 秒」的累加写法,标签页进入后台被节流到每分钟约 1 次时,1 分钟只前进 1 秒,漂移约 59000 毫秒(≈59 秒)——呼吸节拍会整体跑飞。

提示音用 Web Audio 现生成。每段切换调用 AudioContext 的振荡器发一个 0.3 秒正弦音,吸气 440Hz、屏息 550Hz、呼气 330Hz,不引任何外部音频文件。浏览器要求音频在用户点击后才能启动,所以提示音在第一次点「开始」时才创建 AudioContext;不支持的浏览器会提示改用画面文字跟随。

完整示例(默认 4-7-8 × 4 轮)

下面按默认参数走一遍,条件与打开页面时的默认值完全一致:吸气 4、屏息 7、呼气 8、呼后屏息 0,循环 4 轮。时间轴是:

全程封闭在 76 秒(约 1 分 16 秒)上,此时「已完成轮数」显示 4 / 4。若换成盒式 4-4-4-4 × 4 轮,则每轮 16 秒,全程 64 秒(约 1 分 4 秒)——两个示例和下一节的对照表逐位一致。

呼吸法与每轮时长对照表

下表给出两种方法的每段配置、每轮秒数,以及 4 / 8 / 12 轮的总时长,方便你先挑节奏再开练:

呼吸法每段(秒)每轮4 轮8 轮12 轮
4-7-8(默认)吸4 / 屏7 / 呼8 / 屏019 秒76 秒(1.27 分)152 秒(2.53 分)228 秒(3.80 分)
盒式呼吸 4-4-4-44 / 4 / 4 / 416 秒64 秒(1.07 分)128 秒(2.13 分)192 秒(3.20 分)

把轮数拉到 8 或 12,4-7-8 分别是 2 分 32 秒、3 分 48 秒;盒式是 2 分 8 秒、3 分 12 秒。练习密度由轮数决定,单轮时长由呼吸法决定,两者相互独立。

输入范围、边界与精度说明

常见问题

4-7-8 和盒式呼吸到底该选哪个?

看你要什么:4-7-8 的呼气(8 秒)明显长于吸气(4 秒),适合睡前把心率压下来;盒式四段等长,适合焦虑时用「数四拍」把注意力锚住。两者都是固定节拍,换的只是数字,本页都能跑。

还没选呼吸法就点了开始会怎样?

页面默认已载入 4-7-8,所以不会「没选」。若你手动把吸气、屏息、呼气都清空或填 0,点开始会弹出红色提示「至少需要一段大于 0 秒」,并停在待机状态,不会凭空计时。

切到别的标签页计时会不会走慢?

不会。剩余时间每次刷新都用 performance.now() 时间戳差现算,浏览器压低的是「多久刷新一次」,不是「时钟走多快」。代价只是阶段切换的提示音可能晚几秒响,切回前台立即纠正。

提示音没响是哪里的问题?

先确认「节拍提示音」勾选了;再确认不是 file:// 或禁音环境。第一次必须点过「开始」浏览器才允许出声,若仍无声,页面会提示改用文字阶段跟随,计时不受影响。

这组数字(4、7、8)是硬性规定吗?

不是。4-7-8 是条易记的基准线,屏息 7 秒对初学者可能偏长,可改 4-4-6 或 4-2-6 起步;盒式出生就是 4-4-4-4,也可改 3-3-3-3。只要四段加起来是一轮、轮数乘出来是你想要的时长即可。

一天练几轮算合适?

没有统一标准。睡前做 4~8 轮(4-7-8 约 1.3~2.5 分钟)是常见起步量;盒式常做 4 轮一组、间歇重复。页面只累计「已完成轮数」,做多少由你定,不必追数字。

能不能把它当普通计时器或秒表用?

它按「吸气—屏息—呼气」的固定节拍循环,不是通用倒计时。要按某个截止时刻提醒用倒计时类工具,要测一段真实耗时用秒表类工具;本页只负责呼吸节拍引导。

关掉页面练习记录会留着吗?

不会。计时状态只存在当前页面内存,刷新或关闭即清空,这是刻意的——本页不保存任何记录。想留痕可把完成的轮数记到在线记事本里。

相关工具