android - 在airplay中将android实现为服务器(接收器)

标签 android airplay jmdns

我想在 android 中创建 airplay,其中我的 android 设备将用作 airplay 服务器(接收器),而 iPhone 设备将用作接收器。我在我的应用程序中使用了 jmdns,它是 airplay 的 java 开源库。它对音频工作正常。但是当我看到视频和图像时,即使发现了设备,我也会遇到很多困难。这是我创建和注册服务的代码:

    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 中图像和音频的设备。当我选择播放视频的设备时,它会显示消息“This video is playing android(server name )”。但是在服务器端我没有得到任何数据包来处理。我研究了很多Jmdns。但我不知道如何使用 jmdns 在 airplay 中实现视频和图像。有什么想法吗?

最佳答案

您需要一个流媒体服务器。 FFmpeg在我看来,这是一个有趣的起点。查看ffserver零件。

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

关于android - 在airplay中将android实现为服务器(接收器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128124/

相关文章:

android - 在Android中还有什么被认为是繁重的任务?

android - 深度测试无法与模板测试一起正常工作

android - 从我的播放列表中列出带有 ID PLSt1J_r1AmrzOUCGZ6sWNxvOePK4nOwIk 的 youtube 播放列表到我的 android 应用程序中

ios - `DNSServiceRegister`注册的AirPlay服务无法被iOS 11发现

java - 客户端-服务器中的 JmDNS 服务发现

java - 从 colors.xml 更改元素的颜色

ios - 尝试使用 AirPlay 转换本地视频文件返回 'externalPlaybackNotSupportedForAsset' (-11870)

iOS:Airplay 选择器 MPVolumeView 替代品

java - JmDNS 似乎在 Mac OS X 上根本不起作用

java - 重新注册服务 JMDNS