So implementieren Sie die VOIP-Anwendung mit dem Paket android.net.rtp

Ich versuche, die VoIP-Anwendung mithilfe der AudioGroup- und AudioStream-Klassen des android.net.rtp-Pakets zu implementieren. Aber meine Anwendung funktioniert nicht richtig. Nach "Join" des "AudioGroup" -Klassenobjekts mit dem "AudioStream" -Objekt werden seine udp-Pakete erfolgreich gesendet. Ich habe das mit dem Packet Analyzer überprüft. Aber die Stimme ist nicht vom Telefon zu hören. Ich führe meine Anwendung auf zwei Telefonen aus und versuche, eine Sprachkommunikation zwischen ihnen herzustellen.

Im Folgenden erwähne ich meinen Quellcode.

public class MainActivity extends Activity {
private AudioStream audioStream;
private AudioGroup audioGroup;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

try {
   audioGroup = new AudioGroup();
   audioGroup.setMode(AudioGroup.MODE_NORMAL);        
   audioStream = new AudioStream(InetAddress.getByAddress(new byte[] {(byte)192, (byte)168, (byte)1, (byte)4 }));
   audioStream.setCodec(AudioCodec.PCMU);
   audioStream.setMode(RtpStream.MODE_NORMAL);
   audioStream.associate(InetAddress.getByAddress(new byte[] {(byte)192, (byte)168, (byte)1, (byte)2 }), 5004);
   audioStream.join(audioGroup);
   AudioManager Audio =  (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
   Audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
} 
catch (SocketException e) { e.printStackTrace();} 
catch (UnknownHostException e) { e.printStackTrace();} 
catch (Exception ex) { ex.printStackTrace();}
}

Ich habe diese Berechtigungen in der Manifestdatei festgelegt.

<uses-permission android:name="android.permission.USE_SIP" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.sip.voip" android:required="true" />
<uses-feature android:name="android.hardware.wifi" android:required="true" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />

Ich verwende das Samsung GALAXY S3-Telefon mit Android 4.0-Betriebssystem

Antworten auf die Frage(3)

Ihre Antwort auf die Frage