0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-10-18 07:09:16 +00:00

fix(reader-tts): 修复停播通知残留、暂停中改语速出声与朗读桥线程,复评朗读补全并合并 beta

合并远端 beta 最新代码(PR#425 C47 seek 加载圈窗口 / PR#426 首页菜单键弹窗对比度),
零冲突;零复活三层证据复活行数 0,beta 增量逐 blob 一致、零丢失。

复评未推送的朗读功能(NOVEL-TTS)后修复三处真实缺陷:
- 停播后通知栏残留:onTtsState 在 stopForegroundCompat 撤掉通知后仍无条件
  updateNotification,把通知贴回来且标题为「正在朗读」,服务销毁也不清理。
  改为 stopped 不再重贴,并在 onDestroy 兜底 cancel。
- 暂停中改语速出声:MediaPlayer.setPlaybackParams 用非零速度等价 start(),
  暂停中拖动语速会把音频拖响(界面仍显示「已暂停」)。改为暂停中只更新
  options,resume 后在 start() 之后补 applyRate。
- 朗读桥线程:@JavascriptInterface 跑在 WebView 的 JavaBridge 线程,12 个
  朗读桥直接改控制器状态会与主线程引擎回调并发(含 size/get 竞态与非主线程
  startForeground/通知更新)。统一经 postToService 回主线程。

同时修正 NOVEL-TTS 文档中「音频焦点 GAIN 自动恢复」的不实描述(实现只让出、
不自动恢复),并为上述修复补齐真机断言与源码契约测试。

Verification: 双 flavor Java 与 AndroidTest Java 编译通过;双 flavor 全量 JVM 套件
leanback 4125 / mobile 4963 用例 0 失败 0 错误;UI token 门禁 PASS 且相对基线零新增
违规;真机 192.168.50.3:5555 ReaderTtsDeviceTest OK (6 tests);F1/F2 修复前在真机上用
同一套断言各自复现(暂停中改语速把音频拖响、停播后通知栏残留);零复活三层证据复活
行数 0、beta 增量逐 blob 一致

Task-Guard: C52-beta-merge-review-dev1

Verification: 双 flavor Java + AndroidTest Java 编译通过;双 flavor 全量 JVM 套件 leanback 4125 / mobile 4963 用例 0 失败 0 错误;UI token 门禁 PASS(相对基线零新增违规);真机 192.168.50.3:5555 ReaderTtsDeviceTest OK (6 tests);F1/F2 修复前同机负对照各自复现缺陷(暂停中改语速出声、停播后通知残留);零复活三层证据复活行数 0、beta 增量逐 blob 一致

Task-Guard: C52-beta-merge-review-dev1
This commit is contained in:
Silent1566 2026-10-09 14:09:47 +08:00
commit 32202da2de
7 changed files with 400 additions and 41 deletions