android: LAN remote preview (UDP discovery + raw-frame TCP stream, client-side rendering)
This commit is contained in:
@@ -423,7 +423,23 @@
|
||||
拖动/单击换档/双击关闭;PIP 关闭、离页、ON_STOP 三处释放相机;
|
||||
运行时权限用 rememberLauncherForActivityResult。真机项已写入
|
||||
real_device_checklist.md(第 13-15 步 + 失败表现)。APK 已更新。
|
||||
- [ ] Phase F:网络互连远程预览
|
||||
- [x] Phase F(2026-09-10):网络互连远程预览。net/RemoteContract.kt(协议常量+
|
||||
手写扁平 JSON 助手,**无 Android 依赖**便于 JVM 单测 + FramePacketReader
|
||||
流式重组);net/RemoteHost.kt(UDP 47510 每秒广播 + TCP 47511 单客户端;
|
||||
**单一协程拥有 socket**,控制回复与帧记录不会交错;帧队列 DROP_OLDEST 不拖慢
|
||||
相机);net/RemoteClient.kt(discover 去重 3s;connect 行模式→收到
|
||||
stream-start 后切帧模式,同一 chunk 内混合也能正确切分;10s 无数据判死);
|
||||
IrSession 加 rawHook(与 recorderHook 并列);LiveViewModel 接 rawHook →
|
||||
remoteHost.offerFrame + setRemoteHostEnabled(需活跃 USB 会话);
|
||||
设置页新增"远程预览服务端"/"远程预览客户端"两行(前置校验弹"先连接热像仪");
|
||||
ui/remote/ 三文件:RemoteClientListScreen(56dp 标题栏/64dp 卡片/重新扫描/
|
||||
手动添加/空态)、RemoteViewerViewModel(本地 RenderPipeline + 内置 DDT
|
||||
渲染)、RemoteViewerScreen + RemoteRendererHost(与 LiveRenderer 同构图,
|
||||
未改冻结文件)、AppRoot 加两个全屏目的地。Manifest 加 INTERNET。
|
||||
单测 44 个全绿,含 **loopback 端到端测试**(真实 TCP:hello→welcome→
|
||||
start→stream-start→5 帧逐字节往返→ffc→stop→stream-stop)与粘包/截断/
|
||||
坏长度/重同步用例。debug+release 双构建通过。真机双机步骤写入清单第 16-24 步。
|
||||
- [ ] Phase Z:收尾(文档/全量构建/APK)
|
||||
|
||||
|
||||
## 里程碑日志
|
||||
|
||||
Reference in New Issue
Block a user