概要
Windows 托盘点击“开始串流”后,在发现设备、RTSP 握手和 WASAPI 初始化期间没有任何即时反馈,看起来像程序没有响应。
当前行为
TrayWorker::start_streaming() 会同步调用 facade.play_capture(),只有操作成功或失败后才发送 SnapshotUpdated。
因此在网络较慢、设备不可达或接收端响应慢时,托盘菜单会长时间保持原状态。
相关代码
src/ui/tray/windows.rs: worker 命令循环
src/ui/tray/mod.rs: TrayWorker::start_streaming
src/ui/tray/mod.rs: TrayPhase
期望行为
托盘应在收到“开始串流”命令后立即显示启动中或连接中状态。
建议修复
- 新增
TrayPhase::Starting 或 TrayPhase::Connecting { receiver_ids }。
- 收到
StartStreaming 后立即发送状态快照。
- 启动过程中禁用“开始串流”菜单项。
- 状态文本可显示为 “状态:正在连接...” /
Status: Connecting...。
概要
Windows 托盘点击“开始串流”后,在发现设备、RTSP 握手和 WASAPI 初始化期间没有任何即时反馈,看起来像程序没有响应。
当前行为
TrayWorker::start_streaming()会同步调用facade.play_capture(),只有操作成功或失败后才发送SnapshotUpdated。因此在网络较慢、设备不可达或接收端响应慢时,托盘菜单会长时间保持原状态。
相关代码
src/ui/tray/windows.rs: worker 命令循环src/ui/tray/mod.rs:TrayWorker::start_streamingsrc/ui/tray/mod.rs:TrayPhase期望行为
托盘应在收到“开始串流”命令后立即显示启动中或连接中状态。
建议修复
TrayPhase::Starting或TrayPhase::Connecting { receiver_ids }。StartStreaming后立即发送状态快照。Status: Connecting...。