我想在 android 中创建 airplay,其中我的 android 设备将用作 airplay 服务器(接收器),而 iPhone 设备将用作接收器。我在我的应用程序中使用了 jmdns,它是 java 中用于 airplay 的开源库。它对音频工作正常。但是当我看到视频和图像时,即使发现了设备,我也有很多挣扎。这是我创建和注册服务的代码:
ServiceInfo info = ServiceInfo.create(identifier + "@" + name + "._raop._tcp.local", identifier + "@" + name, port, "tp=UDP sm=false sv=false ek=1 et=0,1 cn=0,1 ch=2 ss=16 sr=44100 pw=false vn=3 txtvers=1");
dns = JmmDNS.Factory.getInstance();
((JmmDNSImpl)dns).inetAddressAdded(new NetworkTopologyEventImpl(JmDNS.create(InetAddress.getByName("localhost")), InetAddress.getByName("localhost")));
try {
Thread.sleep(1000); // If this isn't done the Announcement sometimes doesn't go out on the local interface
} catch (InterruptedException e) {
e.printStackTrace(System.err);
}
dns.registerService(info);
当我将第一行中的 ._raop 更改为 ._airplay 时,已经为 iPad 中的图像和音频发现了该设备。当我选择播放视频的设备时,它会显示消息“此视频正在播放 android(服务器名称) ”。但是在服务器端,我没有得到任何要处理的数据包。我学习了很多 Jmdns。但我不知道如何使用 jmdns 在空中播放中实现视频和图像。有任何想法吗 ?