如何使用 Mono.Zeroconf 制作 AirPlay 接收器

Posted

技术标签:

【中文标题】如何使用 Mono.Zeroconf 制作 AirPlay 接收器【英文标题】:How to make an AirPlay receiver using Mono.Zeroconf 【发布时间】:2015-10-27 08:11:32 【问题描述】:

我正在尝试在 Windows 上制作 AirPlay 接收器,但偶然发现了 Mono.Zeroconf http://www.mono-project.com/archived/monozeroconf/。有了这个,我试图把代码。这是代码sn-p:

编辑代码:

RegisterService airplayService = new RegisterService();
RegisterService raopService = new RegisterService();

TxtRecord airplayTxtRecord = new TxtRecord();
TxtRecord raopTxtRecord = new TxtRecord();

raopTxtRecord.Add("txtvers", "1");
raopTxtRecord.Add("ch", "2");
raopTxtRecord.Add("cn", "0,1,2,3");
raopTxtRecord.Add("da", "true");
raopTxtRecord.Add("et", "0,3,5");
raopTxtRecord.Add("md", "0,1,2");
raopTxtRecord.Add("pw", "false");
raopTxtRecord.Add("sv", "false");
raopTxtRecord.Add("sr", "44100");
raopTxtRecord.Add("ss", "16");
raopTxtRecord.Add("tp", "UDP");
raopTxtRecord.Add("vn", "65537");
raopTxtRecord.Add("vs", "130.14");
raopTxtRecord.Add("am", "AppleTV2,1");
raopTxtRecord.Add("sf", "0x4");

raopService.Name = macAddress + "@" + "AirPlay Receiver";
raopService.RegType = "_raop._tcp";
raopService.ReplyDomain = "local.";
raopService.UPort = 49152;
raopService.TxtRecord = raopTxtRecord;
raopService.Register();

airplayTxtRecord.Add("deviceid", macAddress);
airplayTxtRecord.Add("features", "0x39f7");
airplayTxtRecord.Add("model", "AppleTV2,1");
airplayTxtRecord.Add("srcvers", "130.14");

airplayService.Name = "AirPlay Receiver";
airplayService.RegType = "_airplay._tcp";
airplayService.ReplyDomain = "local.";
airplayService.Port = 7000;
airplayService.TxtRecord = airplayTxtRecord;
airplayService.Register();

我有这个作为我的参考:https://nto.github.io/AirPlay.html#servicediscovery-airplayservice。

现在我想知道如何将我的设备屏幕镜像到我的应用程序?

【问题讨论】:

看来 Mono.Zeroconf nuget 包不起作用。我无法发布任何服务。我尝试通过在github.com/mono/Mono.Zeroconf 中构建项目来解决问题,并使用了 .dll(Mono.Zeroconf.dll 和 Mono.Zeroconf.Providers.Bonjour.dll)。此解决方法使我的应用程序能够发布服务。但是,仅发布 AirPlay 服务是不够的。我还需要发布一个 RAOP 服务。请参阅编辑后的代码 sn-p。现在我的 ios 设备能够检测到我的应用程序。但是,AirPlay 功能仅适用于音频。我需要屏幕镜像功能 你有没有得到这个工作?如果你愿意,我想要一些其他的帮助。谢谢 【参考方案1】:

我从某些软件中发现对于 iOS 9,您需要将功能更改为 0x5A7FFFF7。然后您的服务器将被识别为视频设备。

【讨论】:

以上是关于如何使用 Mono.Zeroconf 制作 AirPlay 接收器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flash AIR 和 AS3 中使用触控?

AS3:AIR Android:如何添加输入文本字段?

独立启动使用 Air for Android 制作的应用程序

使用 ActionScript 3 从 Air 中的麦克风查找活动时,如何忽略应用程序播放的声音?

反编译Adobe AIR应用程序

Adobe AIR:错误 #3500