草庐IT

android - 在 Android 上显示实时 UDP 或 RTP 流(多播)

几周以来我才开始接触Android开发,我需要编写一个可以向用户显示以UDP或RDP多播的实时流的应用程序。该流位于诸如“rtp://230.0.0.11:1234”之类的地址,并且由于此模块而由WIFI发出:http://www.ikusi.es/public/ctrl_public_prod.php?accion=verProducto&id_familia=34&id_gama=186&id_producto=351我已经尝试从播放器(Daroon播放器,来自PlayStore)读取它,并且效果很好,所以我认为我的傻瓜问题不是由于广播造成的。我看到可以通过不同的方式向用户显示视频

java - Android 的 RTP 库是否支持多播?

我正在尝试使用Android的RTP类将音频流从一台设备多播到许多其他设备。如果可能的话,我不想使用任何第三方库。我可以使用AudioStream和AudioGroup设置彼此的IP地址,在两个设备之间传输双向音频,但我想传输到多播组.如果我尝试使用多播地址(例如239.1.1.1)实例化AudioStream,然后在另一台设备上使用audioStream.associate()具有相同的多播地址,但听不到流。我了解到一些Android设备不支持多播,但我的设备(三星GalaxyTab2s)支持多播。我什至在我的代码中添加了以下内容以尝试获取多播锁:WifiManagerwifi=(W

android - 是否需要 CHANGE_WIFI_MULTICAST_STATE 权限和使用 WifiManager.MulticastLock 才能在 Android 上接收多播数据包?

我有一个测试应用程序,我用它来演示多播流量是否正在进入Android设备。我看到的行为似乎与Google的文档相矛盾here和here这意味着需要满足两个先决条件才能让应用程序接收多播流量:获取多播锁将CHANGE_WIFI_MULTICAST_STATE权限添加到应用的list我的应用程序能够接收多播流量,而无需这些项目中的任何一项。下面是设置多播套接字以接收数据的代码fragment。MulticastSocketmulticastReceiveSocket=newMulticastSocket(18200);multicastReceiveSocket.joinGroup(Ine

java - 从移动设备到 PC 的 UDP 多播

我正在制作一个Android应用程序,用于将UDP多播数据包从手机发送到我的PC。这是我的移动应用程序的代码:这是AndroidManifest.xml中的用户权限DeviceManagerWindow.javaimportandroid.net.wifi.WifiManager;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Context;importandroid.view.Menu;publicclassDeviceManagerWindowextendsActivity{@Ove

java - Android 设备收不到多播包

我正在开发一个聊天应用程序,Android客户端将在其中使用多播(UDP)交换IP。每个设备都会在一个单独的线程中将其ip发送给多个客户端(所有运行此应用程序的设备)。将有另一个接收器线程将监听这些多播数据包。这是我的代码。//组播代码。DatagramSocketsocket=newDatagramSocket(9898);bytebuff[]=ip.getBytes();DatagramPacketpacket=newDatagramPacket(buff,buff.length,InetAddress.getByName("224.0.0.1"),9999);socket.sen

android - 为什么多播接收在某些 Android 设备上不起作用?

似乎多播接收在某些Android设备上不起作用。我无法使用13个测试设备中的4个接收多播。在这4台设备上,应用程序似乎没有发送加入多播组的IGMP请求。接收多播的代码如下所示:WifiManagerwifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);WifiManager.WifiLockwifiLock=wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF,TAG);WifiManager.MulticastLockmu

android - 如何在 Android 上接收多播数据包

我正在尝试从多播地址接收数据,但对MulticastSocket.receive()的调用会阻塞,直到发生超时。我做了一些网络嗅探,发现我的设备(和模拟器)从不发送MulticastSocket.joinGroup请求。我尝试从我的PC上运行相同的Java代码作为一个独立的应用程序,它运行良好。会不会是Android平台屏蔽了IGMP加入请求?以前有人在Android上成功使用多播吗?我的list文件包含以下权限:我在2.1(模拟器和设备)上运行我的应用程序。有什么想法吗?谢谢, 最佳答案 Lukas给出了我在他的博客上看到的最好的

android - 热点/网络共享模式下 Android 上的多播支持

我有一个原型(prototype)Android应用程序,它正在监听多播数据包以“发现”要与之通信的客户端。套接字设置与此类似:InetAddressgroup=InetAddress.getByName("228.1.2.3");MulticastSockets=newMulticastSocket(4000);s.joinGroup(group);当所有设备都通过WiFi连接时,这非常有效。我想通过充当可移植热点的手机来支持这一点。然而,虽然我的所有设备似乎都正确连接到热点,但我不再接收多播数据。我想知道是否存在禁止在热点模式下进行此类通信的限制,或者是否需要任何额外的网络配置才能

c++ - IPV6链路本地多播

我正在尝试弄清楚如何使用IPV6进行相当于IPV4广播的操作。我正在创建一个非阻塞IPV6UDP套接字。从侧面广播来看,我实际上只是在端口12346上发送“FF02::1”。在收听方面,我发现我需要加入群组,所以我执行了以下操作:ipv6_mreqmembership;memset(&membership.ipv6mr_multiaddr,0,sizeof(in6_addr));membership.ipv6mr_multiaddr.u.Word[0]=htons(0xff02);membership.ipv6mr_multiaddr.u.Word[7]=htons(0x0001);m

windows - 为什么 ZeroMQ PGM 多播接收卡在中间并且没有进一步接收数据包

ZeroMQ(版本-zeromq-4.1.6)PGM多播数据包接收卡在两者之间,即使发件人仍在毫无问题地发送数据包。如果我们重新启动Receiver,应用程序现在会收到数据包,但这不是解决方案。我在发送方和接收方都尝试了各种ZMQ_RATE。问题:发送方使用以下套接字选项发送了将近300,000个数据包,但接收方卡在中间并且没有接收到所有数据包。如果我们添加Sleep(2)-在每次发送时等待2毫秒,有时我们会收到所有数据包,但它会花费更多时间。环境设置:(发送方和接收方使用D-Link交换机在单个子网内连接。媒体速度为1Gbps)Sender:JZMQ(ZMQClibrary,open