﻿# 竖屏投宽屏 · 使用说明

把 A 机（竖着放的 16:9 大屏）的画面和声音，实时投到 B 机（宽屏）上，作为宽屏的一部分显示。
画面和声音只在局域网内传：不经过任何公网服务器中转。

## 一、局域网版（推荐，主方案）

两台电脑都把这个文件夹解压到同一个位置（例如 D:\touping-lan），不要放在压缩包里直接运行。

### A 机（竖屏，被投的那台）
1. 双击「A机-开始投屏.bat」。第一次运行如果 Windows 防火墙弹窗，点「允许访问」。
2. 浏览器小窗里点「开始投屏」→ 选「整个屏幕」→ 勾选「同时共享系统音频」→ 点「共享」。
3. 把这个小窗最小化即可；底部的「正在共享」提示条可以点「隐藏」。

### B 机（宽屏，显示的那台）
二选一：
- 叠加到现有内容上：双击「B机-置顶小窗.bat」。宽屏右侧会出现一个置顶、无边框的竖条窗口，显示 A 机画面并播放声音。
  鼠标移到小窗顶部出现拖动条，按住可拖到任意位置；右下角圆点按比例调大小。位置和大小自动记住，下次打开不变。
- 整屏合成：双击「B机-整屏合成.bat」。全屏显示；按 S 打开设置，可选背景图片或视频（例如 PPT 导出的图片/视频）放在一侧，竖屏实时画面放另一侧。

停止：双击「停止投屏.bat」。

### 调位置、大小
- 置顶小窗：直接拖（见上）；或改「投屏配置.txt」里的 WIN_X / WIN_Y / WIN_W / WIN_H（物理像素）作为第一次打开的位置。
  竖屏是 16:9 竖放，小窗宽 = 高 × 9 ÷ 16。例如 1920×1080 宽屏右侧满高：WIN_X=1312, WIN_Y=0, WIN_W=608, WIN_H=1080。
- 整屏合成：按 S 打开设置面板，可拖动画面、拖右下角圆点调大小，也可选预设（左侧满高 / 右侧满高 / 右下小窗…）、旋转、裁边、圆角、阴影、背景色、音量。
  设置自动保存在本机，下次打开不变。

### 大屏比例校正（画面被拉胖时）
B 机按 16:9（如 1920×1080）输出，但大屏实际是 26:7 这类超宽屏时，大屏会把整幅画面横向拉伸约 2.09 倍，竖屏画面就「变胖」。
1. 按 S 打开设置，「大屏真实比例」选「26:7（人社大屏版 5408×1456）」（其他比例选「自定义」填宽高）。画面会先横向压窄到 47.9%，上了大屏正好还原。
2. 按 C 显示校准图，看大屏上的圆是不是正圆、方格是不是正方形；不准就拖「微调」滑块，直到正圆。再按 C 关掉。
3. 有背景图（如 PPT 大屏版导出图）时，「背景铺法」选「拉伸铺满」，背景也会按大屏比例正确显示。
也可在「投屏配置.txt」里填 RATIO=26:7，脚本打开时自动校正。

根治办法（二选一，做了以后就不需要校正）：
- 让 B 机输出比例和大屏一致：显卡控制面板（NVIDIA 控制面板 → 更改分辨率 → 自定义；Intel 显卡控制中心 → 显示器 → 自定义分辨率；AMD Software → 显示 → 自定义分辨率）新建接近 26:7 的分辨率，例如 1920×517 或 3840×1034，需要大屏的视频处理器支持；
- 或请大屏厂家把视频处理器（拼接器）设为「按比例缩放 / 点对点」，不再强行拉伸 16:9 信号。
PPT 请用 26:7 大屏版（5408×1456）。

### 悬浮窗（置顶、可拖拽、可缩放）
- 在线版（https://touping.wattad.cn/view）：点画面右下角「悬浮窗」按钮或按 P，画面弹出成系统级置顶小窗，可拖到任意位置、拖边调大小，比例校正同样生效。Windows 也可直接双击「B机-悬浮窗-在线版.bat」（不经过 PowerShell）。
- 局域网版是 http 页面，浏览器不允许弹悬浮窗；请用「B机-置顶小窗.bat」（同样置顶、可拖拽、可缩放）。

### 快捷键（B 机页面里）
- S：打开 / 收起设置
- C：显示 / 隐藏比例校准图
- P：打开 / 关闭悬浮窗（在线版）
- H：显示 / 隐藏连接状态（候选对类型、码率、延迟）
- M：静音 / 取消静音
- 双击：切换全屏

### 声音
- A 机要在共享弹窗里勾选「同时共享系统音频」，否则只有画面。
- B 机用脚本打开时会自动出声；如果手动用浏览器打开且没声音，点一下画面即可。
- 画面和声音走同一条连接，浏览器自动对齐（实测音画差在 50ms 以内）。

### 连不上怎么办
- 两台必须在同一个局域网（同一路由器 / 同一网段）。
- A 机上以管理员身份运行「放行防火墙-管理员.bat」一次。
- B 机找不到 A 机时，把 A 机 IP 填进「投屏配置.txt」的 SERVER=（A 机运行后，黑窗口和发送端页面都会显示本机地址）。
- 状态栏（按 H）里「局域网直连」表示媒体直接走局域网；如果直连不通，会自动改走「局域网中转（经 A 机本地服务）」，同样不出局域网。
- 一直显示「建立局域网直连 · 重试」：A 机发送端允许一次麦克风权限（「直连增强」，只用来让浏览器公开本机局域网地址，不采集声音），或在接收端点「修复直连」；仍不行时把 A 机 IP 填进地址的 peerip=。
- 360 等安全软件可能拦截 PowerShell，导致 bat 闪退：把整个文件夹加入信任，或在线版用「B机-悬浮窗-在线版.bat」。

## 二、在线版（https://touping.wattad.cn）

不想装任何东西时用：A 机、B 机都用 Chrome / Edge 打开网址，A 机点「发送端 · 竖屏这台」开始投屏，把显示的接收端地址在 B 机打开。
在线服务器只负责交换连接信息（信令），画面和声音只走两台电脑之间的局域网直连；网站不配置任何中转，媒体不经过公网。
如果局域网禁止了设备互相发现（部分企业网络），在线版会连不上，请改用局域网版。

## 三、Mac 当接收端（B 机）或发送端
Mac 上 Safari、Chrome、Edge 都可以直接打开接收端网址使用；比例校正和系统级悬浮窗需要 Chrome 或 Edge（Safari 的悬浮窗是普通画中画，不做比例校正）。
包里的「Mac」文件夹有一键脚本：
1. 第一次使用：右键「B机-悬浮窗.command」→「打开」→ 再点「打开」（Gatekeeper 放行，只需一次）。也可以在终端执行：xattr -dr com.apple.quarantine 解压后的文件夹
2. 双击「B机-悬浮窗.command」（置顶小窗，点一下画面弹出悬浮窗）或「B机-整屏合成.command」（全屏，Cmd+Q 退出）。第一次按 S 填房间码和口令。
3. 要在 Mac 上跑局域网服务：双击「局域网服务.command」（没装 Node 会自动下载一次）；停止双击「停止.command」。
Mac 当 A 机共享屏幕时，需在「系统设置 → 隐私与安全性 → 屏幕录制」里允许浏览器。

## 四、延迟测试
A 机全屏打开「/clock」计时页（局域网版：http://localhost:8686/clock；在线版：https://touping.wattad.cn/clock），点「开启声音节拍」；
B 机按 S 勾选「测延迟」并按 H 显示状态，会显示画面端到端延迟 P50/P90/P99、声音延迟和音画差。
