android.net.rtpパッケージのAudioGroupクラスとAudioStreamクラスを使用してVoIPアプリケーションを実装しようとしています。しかし、私のアプリケーションは正しく機能しません。 "AudioGroup"クラスオブジェクトを "AudioStream"オブジェクトと "Join"した後、そのudpパケットを正常に送信します。パケットアナライザを使って確認しました。しかし、声は電話から聞こえません。私は2つの電話機でアプリケーションを実行し、それらの間で音声通信を試みます。android.net.rtpパッケージを使用してVOIPアプリケーションを実装する方法
私のソースコードについて以下に説明します。
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();}
}
この許可は、マニフェストファイルで設定します。
<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" />
私は私はあなたが提出した同じコードを使用し、それは小さな変更で作業してしまったアンドロイド4.0 OS
を実装し、このサンプルアプリケーションアウト
チェックはどのようにこの問題を解決しましたか?私はまったく同じ質問があります –