Skip to content

[建议与参考实现] Windows 移动热点下的 AirPlay 发现,以及 HermesCast 2.2 参考包 #19

Description

@feenine

你好,感谢维护 iPhoneMirror!我想分享一个 Windows 移动热点场景的使用建议,以及自己用 AI 辅助完成的一些参考实现,希望能有所帮助。

我本人不太懂代码,也不是专业开发者,下面主要是个人使用中遇到的问题和 AI 协助整理的实现,不敢说是成熟方案或比现有项目更好,请按需要参考。

热点场景与个人已实现的发现层方案

使用 iPhoneMirror v1.8.3 便携版、原始无线接收方案:电脑通过以太网上网,iPhone 连接电脑开启的 Windows 移动热点。软件显示接收端运行中,但手机的“屏幕镜像”找不到接收器。

本机检查发现接收端正在监听、Bonjour 正常运行、相关防火墙允许规则存在。通过 DNS-SD 浏览,只在以太网接口发现了 _airplay._tcp,热点接口没有发现同名服务。源码 DnsSdShim.cpp / DnsSdRegistrationPolicy.h 的优选单接口注册策略可能是这个场景的原因。

个人目前已实现一个发现层 PoC:读取原接收器现有的 _airplay._tcp_raop._tcp 名称、端口、TXT,用系统 Bonjour 在热点接口额外注册;不硬编码 AirPlay 能力,不改变接收/解码程序,不修改防火墙或网卡配置。这个思路参考了自己项目里按指定 IP / 网卡注册 Bonjour 的实现。

已验证的是电脑侧注册回调成功,以及本机 DNS-SD 浏览从“只见以太网接口”变为“以太网和热点接口都可见”。修复后的手机端发现、连接和长时间投屏尚未确认,所以这里的“已实现”仅指本地发现层方案,并非宣称端到端问题已全部解决。

如果对项目有帮助,建议考虑让用户选择广播网卡,或在适用的多个接口发布服务,并覆盖 Windows 移动热点的接口变化、注册更新与撤销等场景。PoC 只是供阅读,不建议原样作为正式实现合并。

HermesCast 2.0 地址与 2.2 参考包

2.2 是手机声音模式的重连修复与诊断候选,包含连接状态、旧流清理、重连解密状态重建等处理;Bonjour 相关入口是 AirPlayBonjour.javaAppleBonjourRegistration.java。也希望视频接收、画质配置和播放器部分,能在热点场景及无线投屏的稳定性、清晰度方面提供一点参考。

需要说明:2.2 还没有确认彻底消除原先约一分钟后断连的问题,也没有与 iPhoneMirror 做同条件画质对比,不能把它理解成经过完整验证的稳定版。源码附件是筛选快照,不是该 Release tag 下已合并的代码;历史测试抓包资源和截图已排除,依赖它们的测试需另取上游资源。本次未重新执行 2.2 完整测试。

资料中排除了个人运行日志、设备档案与本机路径信息,保留了第三方许可说明。项目主要基于 serezhka/java-airplay,由 AI 辅助修改;具体实现是否合适还请你审查。

纯粹是个人项目的交流分享,不一定需要采用。感谢你的工作,希望这些资料多少能有所帮助!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or improvement

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions