Skip to main content
blink

如果录音被中断,内容不会丢失

录音被切断时会发生什么

在录制 Blink 时,音频会 实时保存 到服务器上。因此,如果录音在你完成之前停止 — 比如你锁定手机,关闭标签,接电话,信号丢失 — 你已经说过的部分是安全的。

下次你打开 OrbitingFox 时,该录音会以 草稿 Blink 的形式出现,标题说明它是什么:

草稿 — 中断的录音 #3, 9月4日 上午8:25

编号依次记录你的中断次数,日期和时间让你知道是哪一次 — 当同一个下午有两个录音被中断时,这很有用。

在哪里找到它们

草稿会出现在 两个地方,不论是哪一种都是同样的项目:

  • 你的普通 Blink 列表,与其他所有内容混合在一起,每个项目都有一个小的 草稿 标签,这样你可以一眼看出。
  • 中断录音页面,只显示草稿,上面有说明,每个录音旁边都有选择。

你的三个选择

  • 保留 — 它会变成普通的 Blink。录音会附在上面,你可以随时重命名;草稿标题只是一个起始点。
  • 编辑 — 首先打开它并更改标题或文本,然后像往常一样保存。
  • 删除 — 你不想要它。它会像你删除的任何其他项目一样进入回收站,所以误点是可恢复的。

没有截止日期。草稿会等到你决定。

OrbitPilot 和你的草稿

OrbitPilot 不会读取草稿的内容。 中断的录音是一个未完成的想法 — 你可能没有完成句子,或者你可能完全删除它 — 所以 AI 不会从中学习。

当你 保留 一个草稿时,它变成普通的 Blink,从那时起 OrbitPilot 像对待其他任何Blink一样对待它:它可以读取,除非你已将该 Blink 标记为私密。

发生了什么变化,为什么

之前,一个中断的录音会在你打开的任何 Blink 表单中通过警告横幅进行通知 — 每个中断录音一个横幅,层叠在一起,录音会附在你当时正在写的内容上。

这在两个方面引发了混淆:一个问题却有多个警报,以及录音最终出现在一个不相关的 Blink 中。现在每个中断录音 都是独立的项目,拥有自己的名称,由你决定它的去向。

Blink 表单不再通知他们 (BL-451, 2026-09-10)

直到现在,Blink 表单内都有一个单行通知 — "N 之前的录音被中断并保存为草稿 — 请查看它们" — 在语音笔记块中,位于 开始录音 按钮和其帮助文本之间。拥有者设计了这个功能为 没有任何横幅: 草稿在你的 Blink 列表中可见(标记为草稿),在 中断录音 页面上,以及在主页捕获框下的小沙漏图标后面。主页已经隐藏了表单的通知;表单本身保留了它,并且它恰好在不该打扰的时候打断 — 当你正要捕捉其他东西时。

发生了什么变化。 通知从表单中消失了。拯救的内容没有改变:当你打开一个 Blink 表单时,该页面仍然会请求服务器检查中断的录音,每个中断录音仍然会成为一个草稿 Blink,并拥有真实的标题。你可以在设计放置它们的地方找到它们 — Blink 列表、草稿页面、主页的小图标 — OrbitPilot 可以指引你找到它们。如果你在编辑一个普通的 Blink,而草稿在等待,表单也不会再提及它们;草稿页面会。

对于开发者。 容器 #voice_draft_recovery_banner 被移除自 templates/blink/_wink_voice.html; checkDrafts() 在 _wink_voice_js.html 保持 voice_draft_check 的提取 — GET 的副作用是物质化,因此提取是拯救 — 及删除了横幅写入分支; 现在无效的隐藏规则从 templates/home.html 中删除。BL-396 计数合约未被触及(它的九种场景读取端点,而不是页面)。保护:blink/test_draft_form_notice_retired.py. 这是主页麦克风前端的第 0 阶段 (GRP-104 / WO-33; repo 复制 docs/blink/HOME-PAGE-MIC-DESIGN.md).

在不打开草稿的情况下区分你的草稿(BL-464, 2026-09-11)

发生了什么变化。 每一行在中断录音页面之前会显示一个标题和录制时间,别无他物。标题是生成的,因此八个草稿看起来像是八个相同的东西 — 唯一决定是保留还是删除的办法是打开它,查看,然后再返回。

拥有者的话: "然后用户在点击编辑、保留或删除之前,会对每个草稿有一个大致的了解。这个页面应该对草稿项目更加信息化。"

每行现在包含

  • 所说内容的开头。 一小段转录文本 — 故意保持简短,并且不管录音多长都保持在一行。三行块的列表在不同的形状下会出现同样的问题。
  • 播放控制,在任何仍有录音的草稿上。按下它,录音会在不离开页面的情况下播放;再按一下停止。

同一时间只播放一个。 按下第二个草稿的播放会停止第一个。没有这个,快速浏览八个草稿去确定它们哪个是哪个会让四个录音重合,没有显而易见的方法来停止它们。

控制以文字显示 播放 或 停止,而不仅仅是形状,按下它时文本也会随之变化。这里不需要悬停 — 手机上没有悬停,而这个教训本身有自己的一行。

长度尚未显示

拥有者还请求显示每个录音的总长度。这里没有,因为这是故意而非遗忘:今天没有保存它,添加它的明显方法也最终无法在这个页面上工作。这是一个有独立行的单独工作。

对于开发者

A 草稿 Blink 没有 BlinkAudio. 这是在触碰这个页面之前需要知道的内容。 materialise_voice_draft() 创建 Blink 并将录音保留在 BlinkVoiceDraft 上;只有当用户按下 保留 时,才会创建 BlinkAudio (promote_voice_draft  commit_voice_drafts)。因此播放控制和片段都读取 blink.voice_draft,而 prefetch_related("audios") 会发送 N 次查询返回空。视图已经 select_related("voice_draft"),因此这一行不需要额外查询 — 由统计查询针对一个草稿与四个草稿的测试固定。

片段读取 voice_draft.transcript 而 不是 blink.description: 描述是从提取时间的转录中生成的,可以随时编辑,因此两者是漂移的。转录是实际说出的话,这是某人在浏览列表时尝试识别的内容。

控制是小按钮加一个隐藏的 <audio>,而不是原生的 <audio controls>: 原生播放器大约 300px 宽,而这些行已经包含编辑、保留和删除,因此每一行的宽度会在 375px 处换行。 preload="none" 能让十行列表不会在加载时提取十个音频文件。共享的处理程序位于 static/js/of-draft-play.js; 被拒绝的 play() 会将按钮放回去并指明,而不是让它在静音上继续显示 "停止"。

图标是来自图标注册表 — play、pause 和 microphone 是通过 adminapp/0080 注册的,因为它们都不存在。将 {% of_icon "play" %} 渲染为注册表没有的键会在 DEBUG 之外返回 空字符串,这会造成按钮没有任何内容。相同的迁移替换了待处理的语音芯片用于它的表现的原始 🎤 emoji。

This guide was translated automatically. Read the English original.

🪐 OrbitPilot

Create a free account and I'll remember your conversations — sign up

🧠 Memory status