Skip to content

Commit 02556c4

Browse files
committed
fix(live): 暂停期间重连免端点重启循环 + 恢复态文案区分(观察 29-2)
1 parent 30c7e37 commit 02556c4

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

‎app/src-tauri/src/capture/audio_loopback.rs‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,24 @@ where
302302
on_recovery(false);
303303
}
304304

305+
// 审查修复(暂停重连循环,观察 2026-08-29-2):端点启动前先看暂停标志——
306+
// 暂停期间重连(如 Stop 失败重连接管)若不提前判定,会在 Start 之后由
307+
// 内层循环再次检测边沿执行 Stop;Stop 若持续失败则每轮重连都重复
308+
// "Start→Stop 失败→重连"的永动循环,期间前端"采集中/恢复中"与真实停采
309+
// 信息差。已暂停时保持端点停机、直接进入暂停空转——一次性消除循环。
310+
let (capture_paused, started) = match pause.as_ref() {
311+
Some(p) if p.paused.load(Ordering::SeqCst) => (true, false),
312+
Some(_) => (false, true),
313+
None => (false, true),
314+
};
315+
if started {
316+
audio_client
317+
.Start()
318+
.map_err(|e| crate::error::AppError::Io(format!("启动捕获失败: {}", e)))?;
319+
} else {
320+
eprintln!("[AudioLoopback] 端点保持停机(会话已处于暂停——免 Start/Stop 重连循环)");
321+
}
322+
305323
// 归一化管线:字节 → f32 → 混单声道 → 重采样 16k → 200ms 切块
306324
// @ai-context: 时间戳用会话纪元(epoch 由编排层注入,ADR-008 A1:音频/屏幕/
307325
// flush 三处同基准)而非有效音频计数——静默期时间轴也推进,
@@ -313,7 +331,8 @@ where
313331
let block_samples = (TARGET_SAMPLE_RATE as usize) / 5;
314332
let mut format_error_logged = false;
315333
// 暂停边沿状态(本线程内维护;paused 由命令层置位)
316-
let mut capture_paused = false;
334+
// 审查修复:初始化值随上方提前判定(已暂停重连时直接进入空转,边沿状态一致)
335+
let mut capture_paused = capture_paused;
317336
let mut paused_at: Option<std::time::Instant> = None;
318337

319338
while !stop_flag.load(Ordering::SeqCst) {

‎app/src/App.tsx‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ function App() {
218218
padding: "3px 10px",
219219
}}
220220
>
221-
{paused ? "⏸ 已暂停" : recovering ? "⚠️ 采集恢复中" : "🎙 采集中"}
221+
{/* 审查修复(观察 2026-08-29-2):恢复态文案区分"暂停挂起"——
222+
暂停期重连风暴曾显示"采集中/恢复中"误导,现在明确"暂停中"语义 */}
223+
{recovering ? (paused ? "⏸ 暂停挂起(重连中)" : "⚠️ 采集恢复中") : paused ? "⏸ 已暂停" : "🎙 采集中"}
222224
</span>
223225
)}
224226
{/* v0.8.0 F2:AI 任务完成通知(全局 toast——跨页面可见) */}

0 commit comments

Comments
 (0)