我想开发一个应用程序,使用户能够相互进行实时的音频聊天。我正在使用rtpstream来实现这一点。以下是我的代码。我正在使用两部手机来测试我的应用程序。音频流的端口号是在运行时随机分配的。这意味着我必须在运行时将端口号从电话1发送到电话2以建立连接。这里的问题是通信只是片面的,即电话1可以与电话2通话但是听不到电话1的回复。我应该怎么做才能使它成为双面?还有什么方法可以手动将端口号分配给audiostream?任何帮助将不胜感激。
audioGroup = new AudioGroup();
audioGroup.setMode(AudioGroup.MODE_NORMAL);
audioStream = new AudioStream(InetAddress.getByAddress(MyIP));
PORT = audioStream.getLocalPort();
audioStream.setCodec(AudioCodec.PCMU);
audioStream.setMode(RtpStream.MODE_NORMAL);
audioStream.associate(InetAddress.getByAddress(ReceiverIP), PORT);
audioStream.join(audioGroup);
AudioManager Audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
答案 0 :(得分:2)
执行此操作的正确方法是首先设置RTP流,然后获取流正在侦听的端口号,然后在SIP INVITE的SDP部分中发送该端口。看一下这个例子https://github.com/Mobicents/restcomm-android-sdk/tree/master/Examples/JAIN%20SIP
答案 1 :(得分:0)
我正在努力实现同样的目标,一种可能性是user1与user2共享他的ip。两个用户都可以创建一个音频组和音频流。 audiostream加入其他用户的音频组。