我想在我的安卓应用程序中接收mpegts over udp。为此,我使用了gstreamer。现在,我正试图通过udp从同一台计算机发送来自vlc播放器的mpegts流。
在我的android应用程序中,我给出了uri udp://10.0.2.2:1234,但是应用程序给出了错误无法从/on获取/设置设置。我试着从互联网上得到解决方案,但到目前为止还没有成功。
发布于 2013-06-11 05:45:40
1) UDP地址范围为224.0.0.0至239.255.255.255,因此不能使用10.x.x.x。
2)在处理完附件之后,请参阅这链接来处理编程部分:
获取广播地址,您需要访问wifi管理器以获取DHCP信息并从中构造广播地址:
InetAddress getBroadcastAddress() throws IOException {
WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow
int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);
}发送和接收UDP广播数据包已经构造了广播地址,一切正常工作。以下代码将通过广播发送字符串数据,然后等待响应:
DatagramSocket socket = new DatagramSocket(PORT);
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(),
getBroadcastAddress(), DISCOVERY_PORT);
socket.send(packet);
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);https://stackoverflow.com/questions/15757270
复制相似问题