Rtp на Java новичкам поможет? - PullRequest
1 голос
/ 02 марта 2010

Я начал играть с RTP на Java в Android и задавался вопросом, может ли кто-нибудь дать мне немного помощи или совета.

Вот код, с которого я начал:

public void rtpTest() throws UnknownHostException, SocketException, RtpException{

RtpManager rtpManager = new RtpManager(myAddress);
Log.d("RTPMANAGER", "IPADDRESS here = " + rtpManager.getMyIpAddress());

tpSession rtpSession = rtpManager.createRtpSession(6040);
Log.d("RTPMANAGER", "IPADDRESS here 2");

rtpSession.addRtpListener(this);
Log.d("RTPMANAGER", "IPADDRESS here 3");

RtpPacketReceiver rtpPacketReciever = new RtpPacketReceiver(rtpSession);
Log.d("RTPMANAGER", "IPADDRESS here 4");


//DatagramSocket ds = new DatagramSocket(6042);
//ds.bind(null);

rtpSession.setRemoteIpAddress(getLocalIpAddress());
Log.d("RTPMANAGER", "IPADDRESS recv port = " + getLocalIpAddress() );

rtpSession.setRemoteRtpRecvPort(5060);

rtpSession.receiveRTPPackets();

Log.d("RTPMANAGER", "REMOTE - IPADDRESS = " + rtpSession.getRemoteIpAddress());

Log.d("RTPMANAGER", "Recieve port = " + rtpSession.getMyRtpRecvPort());
Log.d("RTPMANAGER", "Recieve socket = " + rtpSession.getRtpRecvSocket());

Log.d("RTPMANAGER", "RTP SESSION = " + rtpSession.toString());
Log.d("RTPMANAGER", "RTP PACKET RECEIVER = " + rtpPacketReciever.toString());

Log.d("RTPMANAGER", "RTP PACKET RECEIVER is alive? = " + rtpPacketReciever.isAlive());

rtpPacketReciever.run();
Log.d("RTPMANAGER", "RTP PACKET RECEIVER is alive? = " + rtpPacketReciever.isAlive());

Log.d("RTPMANAGER", "IPADDRESS here 5");

}

Я не уверен в правильности настройки диспетчера RTP, сеанса RTP и приемника пакетов RTP.

Нужно ли сначала открывать сокет датаграмм и связывать его с сеансом RTP?

Когда я печатаю RTPSession в строку из моего кода выше, я получаю следующее:

RTP SESSION = <rtp-session
senderIpAddress = "192.168.2.xxx"
remoteRtpRecvPort = "5060"
myAddress = "192.168.2.xxx"
myRtpRecvPort = "6040"
/>

Я не уверен, насколько это правильно или неправильно ??

Также код попадает только в rtpPacketReciever.run (); и останавливается там, регистрация после этого метода никогда не печатается, поэтому я предполагаю, что есть проблема с rtpPacketReciever.run ();?

Я чрезвычайно новичок в RTP, поэтому любые советы или полезные ресурсы, о которых кто-либо знает, были бы очень полезны.

Заранее спасибо

EDIT:

Edit:

Я сейчас добавил этот код:

Код:

DatagramSocket ds = rtpSession.getRtpRecvSocket();
ds.connect(InetAddress.getByName(getLocalIpAddress()), 3120);
Log.d("RTPMANAGER", "ds is bound to remote socket? " +ds.getRemoteSocketAddress());

И запись удаленного сокета ds возвращает следующее:

ds is bound to remote socket: 192.168.2.163/192.168.2.163:3120

Что для меня выглядит неправильно? Это?

1 Ответ

2 голосов
/ 03 сентября 2012

Привет, я думаю, вам стоит попробовать порт 5004. Вы можете обратиться по следующей ссылке http://www.networksorcery.com/enp/protocol/rtp.htm

...