4
我想在我的android應用程序中通過udp
接收mpegts
。我正在使用gstreamer
。現在,我試圖通過udp從同一臺計算機發送來自vlc播放器的mpegts流。Android通過udp發送mpegts流
在我的Android應用程序,我給的URI UDP://10.0.2.2:1234但應用程序提供了錯誤資源無法獲取/從/集的設置。我試圖從互聯網上獲得解決方案,但目前還沒有運氣。
我想在我的android應用程序中通過udp
接收mpegts
。我正在使用gstreamer
。現在,我試圖通過udp從同一臺計算機發送來自vlc播放器的mpegts流。Android通過udp發送mpegts流
在我的Android應用程序,我給的URI UDP://10.0.2.2:1234但應用程序提供了錯誤資源無法獲取/從/集的設置。我試圖從互聯網上獲得解決方案,但目前還沒有運氣。
1)UDP地址範圍從224.0.0.0到239.255.255.255,所以你不能使用10.xxx
2)後你處理不會忽略,請參閱this鏈接處理程序部分:
獲取廣播地址您需要訪問無線經理來把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);
請幫助,如果任何人有這方面的任何絲毫的想法。 – Ruchi
發現我可能會給udp格式錯誤。但沒有得到正確的答案。任何人都可以請幫忙嗎? – Ruchi
我已經使用udp開始了我的一個項目(我不是100%確定,但是從我的個人記憶中)低於2.3,UDP在各處都不起作用。然後我注意到我的一些設備來發送UDP數據包基地,而另一個需要WiFi鎖定。 我希望它可以幫助你 – letroll