概要
Windows 托盘点击“停止串流”或退出时,可能因为音频采集和 RTSP 清理同步执行而反应慢。
当前行为
stop_active_session() 会同步调用 facade.stop_capture(session)。RunningCapture::stop() 会请求采集线程停止,然后 join 该线程。RTSP keepalive teardown 也可能等待 I/O 超时。
这会导致音频采集或网络清理变慢时,“停止串流”或“退出”看起来没有立即响应。
相关代码
src/ui/tray/mod.rs: TrayWorker::stop_active_session
src/app/facade.rs: AppFacade::stop_capture
src/audio/mod.rs: RunningCapture::stop
src/rtsp/client.rs: RtspKeepalive::stop
期望行为
托盘应立即更新为停止中或空闲状态,不应在清理完成前表现得像卡住。
建议修复
- 增加
Stopping 托盘状态,或在清理开始前立即更新 UI。
- 停止/teardown 清理不应阻塞命令响应。
- 适当收紧 teardown 超时行为。
- 即使网络 teardown 很慢或超时,退出流程也应能继续完成。
概要
Windows 托盘点击“停止串流”或退出时,可能因为音频采集和 RTSP 清理同步执行而反应慢。
当前行为
stop_active_session()会同步调用facade.stop_capture(session)。RunningCapture::stop()会请求采集线程停止,然后 join 该线程。RTSP keepalive teardown 也可能等待 I/O 超时。这会导致音频采集或网络清理变慢时,“停止串流”或“退出”看起来没有立即响应。
相关代码
src/ui/tray/mod.rs:TrayWorker::stop_active_sessionsrc/app/facade.rs:AppFacade::stop_capturesrc/audio/mod.rs:RunningCapture::stopsrc/rtsp/client.rs:RtspKeepalive::stop期望行为
托盘应立即更新为停止中或空闲状态,不应在清理完成前表现得像卡住。
建议修复
Stopping托盘状态,或在清理开始前立即更新 UI。