环境
和要串流的设备位于同一局域网,如果不是,请尝试使用 Tailscale 或者 Zerotier 进行虚拟组网,参见教程:Tailscale 不完全使用指南。
你也可以通过 IPv6 进行公网串流,但需要注意,“IPv6临时地址”特性或者防火墙可能会导致无法正常连接。
服务端
如果你是 NVIDIA 显卡,可以使用 GeForce Experience 中的 NVIDIA SHIELD 功能。
更推荐使用 Sunshine (官网) 作为服务端,Sunshine的默认配置可以很好地工作,一般不需要修改。
以下内容假定在 Windows 11 中使用 Sunshine 进行串流。
客户端
使用 Moonlight (官网) 作为串流的客户端。
可以参考B站上阿西西的教程。
在 Moonlight 客户端中应该可以看到主机,在 Sunshine Web 控制台中输入 PIN 以配对。请在客户端设置中选择合适的串流分辨率和帧数。
隐私屏
通过“虚拟显示器”功能,可以在串流时关闭真实屏幕,从而实现隐私屏。
访问USB 虚拟显示器驱动网站,找到 usbmmidd_v2.zip
下载,解压到一个安全的地方,比如 D:\Software\
,双击 usbmmidd.bat
安装。
打开注册表,在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\usbmmIdd\Parameters\Monitors
中设置虚拟显示器的分辨率,可以给名称为 0~9 的项添加串流客户端的屏幕分辨率为字符串值。
在 Sunshine Web 控制台的 Applications 标签页中点击 + Add new
,Application Name 设置为 Private Desktop
,下方 Command Preparations 中添加以下命令:
▶ Do Command ↺ Undo Command 🛡 Run as Admin "D:\Software\usbmmidd_v2\deviceinstaller64.exe" enableidd 0
"D:\Software\usbmmidd_v2\deviceinstaller64.exe" enableidd 0
☑ Elevated "D:\Software\usbmmidd_v2\deviceinstaller64.exe" enableidd 1
"D:\Software\usbmmidd_v2\deviceinstaller64.exe" enableidd 0
☑ Elevated rundll32 user32.dll,LockWorkStation
☐ Elevated DisplaySwitch /external
DisplaySwitch /internal
☐ Elevated 多执行一次“关闭虚拟显示器”是为了防止虚拟显示器多开导致串流主机分辨率异常且操作卡顿。
rundll32 user32.dll,LockWorkStation
是为了在结束串流后锁定电脑。注意,串流暂停或结束后电脑声音将不通过串流设备播放。
点击 Save
按钮保存,你应该能看到串流列表里多了刚刚添加的隐私屏应用。
触摸优化
- 将
Windows 设置 > 时间和语言 > 输入 > 触摸键盘 > 显示触摸键盘
改为始终
,即可在点击文本框时自动弹出。 - 将
Windows 设置 > 个性化 > 任务栏 > 系统托盘图标 > 触摸键盘
改为始终
,即可在任务栏上显示触摸键盘按钮。串流时从屏幕底端中部上划,即可显示开始菜单;从屏幕底端右侧上划,即可显示控制中心;手势被打断后,只显示任务栏。 - 原版 Moonlight 客户端三指轻触即可呼出设备输入法键盘。
- Moonlight 修改版 (下载链接在视频简介) 支持 Windows 多点触控。
- 在安卓设置中开启 Moonlight 物理键盘的无障碍功能,即可将安卓设备上的快捷键操作重定向到串流主机上。
- 如果想唤出设备输入法键盘,可以在 Moonlight 修改版设置中启用 “快捷选项”。
- 特别地,在 MIUI / HyperOS 中,可以开启
设置 > 桌面 > 系统导航方式 > 屏蔽三指、四指手势
,并将 Moonlight 添加到 MIUI 游戏加速列表中,在游戏加速设置中选择屏蔽手势、防误触,在单项游戏高级设置中关闭边缘误触抑制。这样做可以让多指手势通过 Moonlight 发送给宿主机,而不是被 MIUI / HyperOS 捕获。
顺带,下面有两篇参考文档可以瞅瞅。享受你的串流体验吧!