![]()
WinPlay
把iPhone的CarPlay带到Windows,支持无线连接、独立画面窗口、音频播放与鼠标/触控板操作。
快速入门 · 主要功能 · 显示与窗口 · 音频与媒体 · 其他平台 · 源码构建 · 1.2.3版本说明
其他设备:MacPlay · AndroidPlay
WinPlay接续MacPlay,把独立CarPlay窗口与分组设置带到Windows,并参考AndroidPlay的热点连接方案。适合Windows笔记本、平板与桌面电脑,使用Windows移动热点或现有局域网接收iPhone的CarPlay,在电脑上操作导航、播放音乐和使用CarPlay应用。
蓝牙负责配对与连接引导,Wi-Fi传输音视频。两种无线模式分别保存配置,手机端的配件名称与车型统一为WinPlay。当前提供无线CarPlay,不支持USB直连。
快速入门
使用条件
- Windows10/11x64,具备可用的蓝牙适配器;移动热点模式需要Wi-Fi网卡,局域网模式也可使用以太网。
- 支持CarPlay的iPhone,开启Wi-Fi与蓝牙,并允许CarPlay连接。
- 可用的Windows移动热点,或允许两端互访的共用Wi-Fi。
- 能被iPhone接受、且有权使用的配套认证材料,见认证与本机数据。
安装包内置Electron、Node.js与Windows平台桥接,普通用户无需额外安装Node.js或开发工具。
安装
在GitHubReleases下载WinPlay-1.2.3-Setup-x64.exe,按向导完成安装。单个EXE内置运行组件,可离线安装;开发者也可从源码构建。
首次默认1280×720、60fps、可等比例缩放的窗口、系统默认输入/输出设备、100%音量与跟随系统语言。当前安装包未做发行代码签名,Windows可能显示安全提示。
升级前退出旧版,再运行新版安装包,已有设置、认证文件和配对数据保留。使用旧标签检测逻辑的1.2.0可能无法发现V1.2.1,请从发行页手动升级一次;1.2.1已兼容统一V标签。
在“关于→认证文件”确认文件已就绪。需要替换时,一次选中匹配的identity.pk8和certificate.p7b导入,本机导入的配套文件优先使用。
无线连接
- 在Windows蓝牙设置中配对iPhone,回到WinPlay点击“刷新iPhone列表”并选择目标。
- 选择本机移动热点或现有局域网,按下表准备网络。
- 点击“读取当前网络和密码”自动填入配置,读取失败的部分可手动填写。网络接口默认“自动检测”,也可手动选择。
- 点击“启动接收”,在iPhone上确认允许CarPlay。收到视频并完成首帧解码后,独立画面窗口自动显示。
- 修改连接、显示或音频设备后,点击“应用并重新连接”。
| 无线模式 | 网络准备 | 接口检测 |
|---|---|---|
| 本机移动热点 | 在Windows设置中开启移动热点;读取系统设置中的热点名称和密码,信道0表示自动发现 | 识别Windows实际用于热点共享的私有接口,等待链路与地址就绪 |
| 现有局域网 | Windows与iPhone加入同一Wi-Fi;读取当前网络、实际信道和对应的已保存密码 | 选择已连接的物理网络接口,可按需填写接入点BSSID |
热点模式读取Windows移动热点自身的名称与密码,不读取保存的Wi-Fi密码;局域网模式读取当前Wi-Fi及同一网卡对应的保存配置。读取失败时显示原因并保留原输入,可手动补齐。启动热点接收前会刷新系统配置,避免使用已修改的旧名称或密码。
Wi-Fi共享密码需为8—63位,企业802.1X、网页登录与访客网络的客户端隔离可能阻止连接。防火墙需允许WinPlay与iPhone互访以及Bonjour多播。停止接收不会关闭Windows移动热点。
主要功能
| 功能 | 使用体验 |
|---|---|
| 无线双模式 | 本机移动热点与现有局域网分别保存配置,按所选模式自动检测网卡 |
| 独立画面窗口 | 默认1280×720、60fps,窗口自动适配屏幕,可选严格物理像素对齐 |
| 被动断线重连 | 可选自动回连上次的iPhone,默认关闭,主动停止时不重连 |
| 多屏与分辨率 | 选择显示器、预设或自定义像素,支持屏幕原生像素的全屏窗口化 |
| 鼠标与触控板 | 点击、拖动,以及上下/左右连续滚动 |
| 音量与设备 | 媒体与通话音量实时调节,输入/输出设备默认跟随系统 |
| Windows媒体控件 | 同步播放信息,回传播放/暂停、切歌与播放器允许的进度跳转 |
| 歌词与封面 | 标题字段中的歌词照常同步,封面独立去重并按需更新 |
| 窗口与托盘 | 正常最小化到任务栏,可选择关闭主窗口后留在托盘继续接收 |
| 多语言 | 跟随系统、简体中文、繁體中文、English,切换立即生效 |
| 关于与更新 | 查看版本、检查正式发行版、下载对应安装包,并管理日志与认证 |
界面与语言
主窗口分为连接、显示、音频和关于四页,采用与MacPlay对应的左侧导航和右侧分组卡片。CarPlay画面单独显示,设置不会叠加在画面上。
连接、显示、音频页保留固定底部接收栏。接收未启动时显示“启动接收”;运行期间提供“停止接收”“显示画面”和“应用并重新连接”。关于页集中展示版本、更新、日志与认证,最近日志和认证区默认折叠。
“连接→应用”提供语言、关闭行为与外观设置。支持浅色、深色及跟随Windows;外观只影响WinPlay自身界面,CarPlay语言和画面外观由iPhone决定。切换设置页或应用语言不会断开会话。
显示与窗口
分辨率与帧率
“显示→视频分辨率”提供屏幕原生像素、1280×720、1920×1080、2560×1440和自定义。选择自定义后显示宽高输入,“请求像素”随输入更新,在点击应用前不重新协商。
普通CarPlay窗口可以拖动标题栏移动。关闭严格物理像素对齐时,可拖动边框等比例缩放;开启后固定画面尺寸,禁止拖动边框调整大小。默认按屏幕空间适配:以约960×540个逻辑像素为基准,按视频比例缩放,并限制在屏幕可用区域的80%以内,为标题栏和任务栏留出空间。窗口在所选屏幕居中显示,收到视频并完成首帧解码后才打开。
“严格按屏幕物理像素显示”默认关闭。开启后,1个视频像素对应1个屏幕物理像素,Windows缩放不会改变画面的物理尺寸。该选项与分辨率、显示器设置一起,在点击“应用并重新连接”后生效。
请求分辨率与窗口显示大小分开:默认仍向iPhone请求1280×720视频。视频保持比例,剩余区域留黑边;选择屏幕原生像素或屏幕最大分辨率时全屏窗口化显示,始终使用屏幕物理像素。
请求分辨率超出所选屏幕时会在分辨率卡片提示错误并保留输入。严格模式下,画面加标题栏超出可用区域时需降低分辨率或改用屏幕原生像素;默认适配模式会按比例缩小窗口,不改变请求分辨率。CarPlay自身的“智能缩放显示”可能改变界面内容大小,可在iPhone上调整。
帧率可选30/60/90/120fps,默认60fps。120的视频启动失败后尝试90,再失败尝试60;高帧率是请求上限,实际输出取决于iPhone、网络与解码能力。在“显示→流畅度→接收统计”可分别查看请求、本次尝试、实际接收和解码帧率,屏幕刷新率不作为视频帧率。
最小化与断开
主窗口和CarPlay窗口点击“-”均正常最小化到Windows任务栏,保留图标与连接。CarPlay窗口按Esc也最小化到任务栏,Win+D遵循Windows显示桌面的行为;通过任务栏图标、“显示画面”或托盘菜单重新唤起。
首次关闭主窗口时可选择退出或最小化到托盘,并勾选“不再提示”;之后可在“连接→应用”修改。托盘菜单可显示主窗口、显示CarPlay、启动/停止接收或退出应用。
关闭CarPlay窗口会先询问“您确定要断开与iPhone的连接吗?”取消保持连接,确认后停止接收。主动停止或完整会话断开后,画面窗口自动关闭,保留当前页面与配置;未开启自动重连时,主界面恢复“启动接收”。CarPlay内部的WinPlay入口用于打开设置主窗口。
无线自动重连
在连接页开启“无线连接被动断开时自动重连”后,已有连接意外断开时会回连上次成功连接的iPhone。该选项默认关闭,首次连接失败不会触发自动回连。
重试等待依次为5、10、20、30、60秒,之后每60秒尝试一次,每次仅执行一个连接请求。重新收到视频后打开画面窗口并重置间隔。主动停止接收、确认断开、退出应用或关闭此选项都会取消重连。
音频与媒体控件
声音与设备
媒体音量、通话音量和播放开关实时生效。输入与输出设备默认跟随系统,也可分别选择;切换设备后点击“应用并重新连接”。麦克风使用需要Windows授权,拒绝后仍可接收画面与播放声音。
音乐支持48kHz双声道AAC传输,音频页显示实际协商格式,码率由iPhone决定。音频包先按协商延迟缓冲与重排,解码后按手机原始采样时间播放,并直接输出到所选Windows设备。音乐起播可能短暂等待,导航和通话使用较短缓冲;迟到音频不会通过加速播放追赶。
快速滑动时,绘制只保留最新的已解码画面,减少旧画面积压;音频按手机原始采样位置调度,缺包后保留对应时间间隔,后续声音继续按原时钟播放。无线丢包和输出设备仍会影响实际体验。
系统媒体控件
WinPlay向Windows系统媒体控件同步iPhone上报的播放状态、标题、歌手、专辑、封面、时长与进度。系统按钮可播放/暂停、上一首与下一首;播放器上报有效时长并允许跳转时,可拖动系统进度条。未上报的信息可能为空。
歌词与封面
部分音乐App通过歌名字段显示歌词,有时专辑文字也会频繁变化。WinPlay照常同步这些文字,不把标题或专辑文字变化当作切歌,封面独立按需处理:
- 确认切歌后清除旧封面,新曲目的首张封面立即显示。
- 相同图片不重复同步,歌词更新不重复携带已有封面。
- 同一首歌内连续变化的封面最多每5秒更新一次,期间保留最新一张。
这些处理减少应用内部的数据复制、画面刷新与系统媒体控件更新;iPhone已经发出的封面数据仍需接收。
更新与日志
“关于→软件更新”提供自动检查、手动检查、发行说明与下载入口。自动检查默认开启,每次启动软件后检查一次,运行期间每隔两小时在后台检查,包括最小化到任务栏或托盘时。后台定时检查不弹出对话框,结果显示在软件更新页面;手动检查可随时执行。关闭自动检查后,启动和定时检查均停止。
更新只读取Roylyl/WinPlay正式发行版,兼容V1.2.1、v1.2.1、WinPlay-1.2.1和纯数字标签。按数字版本大小判断新版,不按发布时间判断,草稿和预发行版不参与更新。
发现新版后可下载、查看说明或稍后处理,同一版本不重复自动提醒。安装包按实际发行标签与对应版本的x64EXE匹配,通过系统浏览器下载后由用户安装;没有匹配附件时提供发行说明入口。
“关于→日志”可打开或导出诊断记录,“最近日志”展开后支持选择与复制。日志在保存、打开和导出时过滤网络标识、个人路径、认证内容与配对密钥,不导出设置或认证文件。
认证与本机数据
本地安装包内置构建者提供的identity.pk8与certificate.p7b,用户也可在关于页导入有权使用的配套文件。文件格式与公钥需匹配,最终认证由iPhone决定,普通Apple开发者签名证书不能替代CarPlay配件认证。
认证材料与程序代码分别适用各自权利条件,公开下载不代表获得再分发授权。公开分发安装包前,应确认内置材料授权,或移除内置文件并提供用户导入方式,见NOTICE。
设置、认证文件与CarPlay配对身份保存在%APPDATA%\WinPlay\data,敏感数据使用WindowsDPAPI保护。卸载默认保留用户数据。不要公开此目录、Wi-Fi密码或认证私钥。
常见问题
| 现象 | 处理方法 |
|---|---|
| 热点模式未找到可用接口 | 先在Windows设置中开启热点,等待地址就绪后刷新;可保持自动检测 |
| 蓝牙列表没有iPhone | 在Windows系统设置中完成配对,再刷新iPhone列表 |
| 启动后没有画面窗口 | 窗口在首帧解码后显示;查看连接状态,核对认证、网络参数、实际接口与防火墙 |
| 已连接后画面黑屏或出现异常色块 | 查看视频恢复提示并尝试应用重连;源端压缩也可能影响渐变色阶,持续异常时导出日志 |
| 无法读取网络或保存的密码 | 查看对应按钮下方的实际错误,检查Windows权限,或手动填写 |
| 提示物理像素尺寸不一致 | 关闭“严格按屏幕物理像素显示”并应用重连;默认适配模式使用实际画面区域尺寸 |
| 蓝牙认证通过但网络连接超时 | 确认iPhone已接入指定Wi-Fi、网卡选取正确,并允许安装目录内resources/node/node.exe通过防火墙;导出诊断日志定位服务发现与交接阶段 |
| 自定义分辨率无法保存 | 按提示修改宽高为所选屏幕范围内的偶数像素尺寸,或选择原生像素 |
| 系统媒体信息为空或进度无法拖动 | 音乐App需上报相应字段、有效时长与跳转能力;直播可能不提供 |
| 歌名不断变化,封面不变 | 音乐App可能正在通过歌名字段同步歌词,属于正常行为 |
| 同曲封面没有立即变化 | 连续封面变化会合并,最多每5秒更新;新曲目首张封面立即显示 |
| 音乐起播有短暂等待 | 正在建立协商的音乐缓冲,导航和通话使用较短缓冲 |
| 音频变速变调、断续或爆音 | 确认输出设备并应用重连;持续发生时导出日志反馈 |
反馈问题可前往GitHubIssues。请说明版本、无线模式、现象和出现时间;音频异常再补充输出设备及连接方式,例如DP/HDMI显示器、有线耳机或蓝牙耳机。日志包含音频缺包与时钟统计、视频数据量和队列积压,便于区分网络与播放问题。附日志前请检查内容,不要上传密码或私钥。
其他平台
WinPlay、MacPlay与AndroidPlay是面向不同设备的同系列项目。想在Mac上使用USB直连,或把Android手机、平板、车机用作接收端,可以选择对应项目:
| 项目 | 平台 | 适合的使用场景 |
|---|---|---|
| WinPlay | Windows10/11x64 | Windows笔记本、平板或桌面显示器,支持移动热点与现有局域网无线接收 |
| MacPlay | macOS14及以上 | Mac用户,支持USB直连与共用Wi-Fi无线连接,提供原生设置与系统媒体控件 |
| AndroidPlay | Android9及以上 | Android手机、平板与车机,通过系统热点和蓝牙连接,提供全屏画面与通知栏媒体控制 |
从源码构建
在Windows项目根目录使用Node.js24与npm,Windows自带.NETFramework的C#编译器负责平台桥接。首次获取依赖、运行时和.NETFramework编译参考程序集需要联网:
npm ci
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/fetch-runtime.ps1
npm run build
npm start打包前,将有权使用的配套认证文件放入resources/authentication,然后执行:
npm run dist产物为dist/WinPlay-1.2.3-Setup-x64.exe,交付脚本同时复制到Windows桌面。本仓库的本机交付脚本会通过官方卸载程序清理已有WinPlay安装并保留用户数据,详见交付约定。
| 目录 | 内容 |
|---|---|
src/engine | 无线引导、CarPlay协议、配对与音视频接收 |
src/ui | 分组设置、独立画面、音频输出与多语言 |
native | Windows蓝牙、物理像素、数据保护与系统媒体控件 |
resources | 图标、运行时与构建所需认证资源 |
scripts | 编译、运行时获取与安装包构建 |
认证文件、个人配置、运行时缓存、依赖与构建产物由.gitignore排除。
来源与许可
无线引导参考AndroidPlay,局域网方案与网络协议复用MacPlay,保留LIVI、LasseHeitgres及贡献者和DiPlay来源声明。项目沿用GPL-3.0-or-later,见LICENSE、NOTICE与第三方声明。
WinPlay是独立衍生项目,不代表Apple或上游作者,不声称获得MFi认证。第三方组件、认证证书、私钥和商标继续适用各自权利条件。分发修改版时应保留声明,并提供适用许可要求的对应源码与构建资料。