苹果手机投屏 Windows 电脑太麻烦免费开源的 AirPlay 2 方案 airplay2-win 一次讲清【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win晚上窝在沙发里刷视频想顺手把 iPhone 的画面投到旁边那台 Windows 电脑的显示器上可屏幕镜像列表翻来翻去就是找不到它——先别怪路由器这是平台之间的语言障碍。本文要介绍的 airplay2-win正是为了解决苹果设备无线投屏到 Windows 电脑而生的免费开源方案它把 AirPlay 2 服务端完整迁移到了 Windows 平台让 iOS 和 macOS 设备都能轻松把画面投过来。下面我用几个大家最常问的疑问当主线带你从拿到源码一路走到手机画面上屏。疑问一同样是投屏为什么苹果设备偏偏认不出 WindowsAirPlay 是苹果自家的私有无线投屏协议第二代 AirPlay 2 在传输稳定性、延迟和流媒体体验上更进一步。问题在于Windows 系统里并没有内置 AirPlay 接收端所以哪怕两台设备就待在同一个 Wi-Fi 下苹果设备也看不见电脑更别提投屏了。想要补救市面上无非两条路装收费投屏软件但大多闭源、按年收费还时不时弹广告用 airplay2-win 这类开源方案自己搭建一个接收器也就是免费 AirPlay 服务器airplay2-win 做的事情可以这样理解它把苹果设备发来的投屏信号翻译成 Windows 能播放的画面和声音。打开项目源码你会发现里面住着三位分工明确的翻译官模块扮演角色airplay2/AirPlay 2 核心协议栈负责安全配对、音视频流接收与解析dnssd/mDNS 设备发现服务让电脑在局域网中顺利现身airplay-dll-demo/演示程序用 SDL 把接收到的画面渲染到窗口这里的翻译底子其实很扎实音频走 FDK-AAC 解码视频走 H.264 解码配对过程由 RSA 加密认证保驾护航声音和画面质量都有基本保障而不是简单地把画面糊出来。疑问二跑起来之前我需要准备些什么说实话准备工作相当轻量几乎不需要额外花钱买东西Windows 10 或更高版本的系统Visual Studio 2019用于编译和手机处于同一个 Wi-Fi 网络推荐 5GHz投屏更流畅iOS 9.0 或 macOS 10.11 的苹果设备小提示如果你的 Windows 跑在虚拟机里务必把虚拟机的网络模式改成桥接否则手机永远发现不了这台电脑。这一点在项目 README 的常见问题里也被特别强调过算是新手最容易踩的坑。获取源码只需要一条命令git clone https://gitcode.com/gh_mirrors/ai/airplay2-win cd airplay2-win疑问三源码拿到了怎么编译、怎么启动整个过程三步走比想象中省事双击打开解决方案文件airplay2-win.sln右键airplay-dll-demo项目把它设为启动项目按Ctrl B生成解决方案首次编译稍等几分钟编译完成后生成的 DLL 和 lib 文件会输出到AirPlayServer目录。运行airplay-dll-demo.exe你会看到一段简短提示Usage: [s] to start server [q] to stop [-] and [] to scale video size.按下s启动服务然后拿起你的苹果设备iOS 打开控制中心 → 屏幕镜像macOS 点击菜单栏的 AirPlay 图标在设备列表里找到形如FgAirplay[你的电脑名]的那一项点击连接电脑窗口里就会开始实时显示手机画面连上之后[q]用来停止服务[-]和[]用来缩放画面大小。整个iOS 屏幕镜像到 Windows的流程到这里就通了。疑问四连不上、没画面、没声音怎么排查我把这个项目里被问得最多的三个问题整理了出来建议按先网络、再软件、后环境的顺序排查1. 手机能发现设备但一直连接不上确认两台设备在同一个 Wi-Fi、同一个网段虚拟机场景下检查是否启用了桥接网络尝试暂时关闭 Windows 防火墙对相关端口的拦截2. 连接成功了窗口里却没有画面更新显卡驱动到最新版本用管理员身份重新运行airplay-dll-demo.exe观察程序输出的日志看画面接收卡在了哪一步3. 画面有了声音却对不上优先切换到 5GHz 频段减少同频干扰暂时关掉下载、直播这类占带宽的应用网络延迟尽量控制在 50ms 以内疑问五和收费投屏软件比它到底值不值一句话回答如果你追求免费 可控 可改造airplay2-win 几乎是目前唯一能同时满足这三点的苹果投屏 Windows 方案。对比维度airplay2-win常见收费投屏软件费用MIT 开源免费按年或按设备收费源码可见完整可读、可审计闭源黑盒AirPlay 2完整协议支持多数支持二次开发可改可集成到自家应用基本没戏上手门槛需要自己动手编译开箱即用说白了如果你只想要装上就用收费软件确实更省心但如果你想要一份长期免费、还能按自己想法改的 AirPlay 2 协议实现开源这条路显然走得更长远。疑问六想动手改代码应该从哪些文件下手项目对开发者相当友好核心 API 都集中在 airplay2/include/airplay.h。服务生命周期就五个函数很好记airplay_t *airplay_init(int max_clients, airplay_callbacks_t *callbacks, const char *pemkey, int *error); int airplay_start(airplay_t *airplay, unsigned short *port, const char *hwaddr, int hwaddrlen, const char *password); int airplay_is_running(airplay_t *airplay); void airplay_stop(airplay_t *airplay); void airplay_destroy(airplay_t *airplay);业务逻辑靠回调注入比如视频一开始播放就会触发video_play回调你可以在里面接入自己的播放器音频数据则通过audio_process一帧帧地交到你手上。想接自己渲染器的朋友这两个回调就是切入点。如果你更习惯 C 的面向对象写法airplay2dll/ 目录里还准备了现成的 DLL 封装void* fgServerStart(const char serverName[], unsigned int raopPort, unsigned int airplayPort, IAirServerCallback* callback); void fgServerStop(void* handle); float fgServerScale(void* handle, float fRatio);几个值得留意的自定义配置点服务名默认是FgAirplay[主机名]RAOP 端口默认 5001、AirPlay 端口默认 7001这些参数都集中在 airplay-dll-demo/CAirServer.cpp改起来一目了然。写在最后你的下一步airplay2-win 用最朴素的方式回答了一个很多人困惑的问题苹果设备能否通过 AirPlay 2 投屏到 Windows答案是能而且免费、开源、可改造。它不太适合完全不想动手的用户但非常适合愿意花十分钟编译、之后长期白嫖一份稳定投屏方案的朋友。接下来你要做的其实就三件事克隆源码按文中的步骤完成编译运行airplay-dll-demo.exe按s启动服务打开手机上的屏幕镜像点一下那台 Windows 电脑当手机画面第一次出现在电脑窗口里的那一刻你会觉得这十分钟花得相当值。【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考