2013-02-28 29 views
12

我想在Android中創建airplay,其中我的android設備將作爲airplay服務器(接收器)工作,iPhone設備將作爲接收器工作。我在我的應用程序中使用了jmdns,這是java中的開源庫,用於播放。它對於音頻工作正常。但是,當我來到視頻和圖像,然後有很多甚至與設備的發現奮鬥我的。這裏是我的代碼創建並註冊服務:在airplay中實現android作爲服務器(接收器)

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在播放中實現視頻和圖像。有任何想法嗎 ?

+0

JmDNS不做任何事情,而不是一個祝福的問候。在您的Android服務器應用程序中,您需要使用其他現有庫或從零開始實施Http Live Streaming服務器(用於提供照片和視頻)。 – yorkw 2013-03-07 22:38:52

+0

@ yorkw:那麼有沒有現成的圖書館來實現這一目標? – 2013-03-08 04:25:58

+0

@ V-Xtreme你能幫我一下嗎? – 2014-02-20 18:07:04

回答

3

您需要流媒體服務器。 FFmpeg在我看來是一個有趣的地方開始。請參閱ffserver組件。

這是一個很好的教程,介紹如何在ffmpeg-java中包裝它。

+0

此外,我發現這個:http://stackoverflow.com/questions/1244861/live-video-streaming-using-java。以防萬一FFmpeg以某種方式不適合你。 – stpn108 2013-03-14 06:16:15