Files
im_webapp/src/widgets
Your Name 9eb9df649d 修复视频通话振铃阶段本地小窗预览提前可见且可拖动
本地小窗预览(.call-party.self)此前只由 audioOnly/minimized 控制显隐,
没有校验连接是否真正建立(this.state.remoteStream),导致视频通话振铃
阶段(对方尚未接听、只有本地摄像头画面)小窗就已经以 display:block 可见,
且 dragStart 里对应的分支同样没有这层校验,振铃阶段就能拖动这个本应还
不存在的预览框。

render() 里 .call-party.self 的 disabled 属性补上 !connected 判断,
dragStart 里进入 'self' 拖动分支的条件补上 this.state.remoteStream 校验,
两处保持一致:只有远端媒体真正到达(连接建立)后小窗才出现并可拖动。

验证:用 canvas.captureStream()/AudioContext 构造的合法 MediaStreamTrack
配合 monkey-patch getUserMedia,绕开已知后端通话邀请 400 缺陷直接驱动
CallPanel 组件状态。振铃阶段(waitingForPeer=true, remoteStream 未设置)
下 .call-party.self 计算样式 display:none、无 [disabled] 属性对应的
cursor:grab;调用 handleTrackEvent 模拟远端媒体到达后,display:block、
cursor:grab,且用真实鼠标拖拽(非合成事件)验证了拖动/边界收紧都正常。
2026-09-06 15:55:48 +08:00
..
2023-01-25 17:08:07 -08:00
2026-01-16 20:51:57 +03:00
2026-01-16 20:51:57 +03:00
2026-01-16 20:51:57 +03:00
2025-09-01 14:51:09 +03:00
2026-01-16 20:51:57 +03:00
2026-01-16 20:51:57 +03:00
2021-07-01 14:19:28 -07:00
2021-08-13 20:35:39 -07:00
2026-01-20 12:58:58 +03:00
2026-01-16 20:51:57 +03:00
2025-05-09 19:19:02 +03:00
2026-01-20 12:58:58 +03:00