一个废物德森林

autobook开发

tags: 开发
@不是五木 28/06/2026

claude: 推完 —— commit 3b122b4,tag v1.12.13 上 fivood/autobook。

两个 bug 的根因 #1 速度徽标重叠 「12 字/秒」徽标原来在播放按钮右上角伸出(-top-2 -right-2),但 AutoReaderFab 的音量按钮就在右边 right-20 位置——徽标朝右伸正好怼上音量按钮。

改成放在播放按钮正上方居中(-top-5 left-1/2 -translate-x-1/2),不挨任何 FAB。

#2 加速点了就停 + 显示全文 + 再点没用 这个是连环反应,找出来挺解气:

加速点 + ↓ multiplier 变 ↓ book-reader-continuous 的 $:{} 反应块跑(它依赖 multiplier)↓ 里面有 autoReaderConcrete.setContentEl(contentEl)(同一节点)↓ setContentEl 不做幂等检查,无条件 reset() ↓ reset() 调 off() ↓ autoReader.enabled$ emit false ↓ +page.svelte 订阅器: if (!enabled && !isPaginated) autoScroller.revealAll() ↓ 所有字符显示(视觉"显示全文")+ revealedIndex == chars.length ↓ 下一次 revealNext 撞到 if (revealedIndex >= chars.length) off() ↓ typewriter 自杀 ↓ 再点播放→toggle→on→ensurePrepared→interval→revealNext→撞底→off (永远活不过去)

修法:4 个 AutoReader 引擎(Web Speech / SAPI / Custom / Kokoro)的 setContentEl 全部加 if (this.contentEl === el) return 幂等短路。这跟 AutoScroller 已有的保护一致。

测试方法:装上 1.12.13,开打字机播放,点 + 加速 → 应该看到字符流加快,不再"自杀"。要是还碰到别的 FAB 抽风跟我说。


它还“挺解气”

← 返回文章列表