Android отправляет потоки mpegts поверх udp

Я хочу получать mpegts над udp в приложении для Android. Для этого я использую gstreamer . Прямо сейчас я пытаюсь отправить поток mpegts с vlc-плеера с того же компьютера на udp.

В моем приложении для Android я даю uri udp: //10.0.2.2: 1234, но приложение дает ошибку. Не удалось получить / установить настройки с / на ресурс . Я пытался получить решения из Интернета, но пока не повезло.

1) Диапазон адресов UDP от 224.0.0.0 до 239.255.255.255, поэтому вы не можете использовать 10.xxx

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);