【问题标题】:Implementing android as a server (receiver) in airplay在airplay中实现android作为服务器(接收器)
【发布时间】:2013-02-28 05:26:08
【问题描述】:

我想在 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 在空中播放中实现视频和图像。有什么想法吗?

【问题讨论】:

  • JmDNS 只做一个 bonjour 问候。在您的 Android 服务器应用程序中,您需要使用其他现有库或从头开始实现 Http Live Streaming 服务器(用于提供照片和视频)。
  • @yorkw:那么是否有任何现有的库可以实现这一目标?
  • @V-Xtreme 你能帮帮我吗?
  • @KanakSony:哦!这么晚才回复很抱歉 。但问题是我找不到那个代码。但我会尽我所能找回那段代码。

标签: android airplay jmdns


【解决方案1】:

您需要一个流媒体服务器。 FFmpeg 在我看来是一个有趣的起点。请参阅ffserver 组件。

这是一个很好的教程,介绍如何将其包装在 ffmpeg-java 中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多