Android の RTP クラスを使用して、あるデバイスから他の多くのデバイスにオーディオ ストリームをマルチキャストしようとしています。
可能であれば、サードパーティのライブラリを使用したくありません。
AudioStreamお互いの IP アドレスを使用して設定し、2 つのデバイス間で双方向オーディオをストリーミングできAudioGroupますが、マルチキャスト グループにストリーミングしたいと考えています。
AudioStreamなどのマルチキャスト アドレスを使用して をインスタンス化しようとする239.1.1.1と、他のデバイスaudioStream.associate()で同じマルチキャスト アドレスを使用しますが、ストリームが聞こえません。
マルチキャストをサポートしていない Android デバイスについて読んだことがありますが、私のデバイス (両方の Samsung Galaxy Tab 2s) はマルチキャストをサポートしています。マルチキャスト ロックを取得するために、コードに以下を追加しました。
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
            multicastLock = wifi.createMulticastLock("multicastLock");
            multicastLock.setReferenceCounted(true);
            multicastLock.acquire();
さらに、マニフェスト ファイルに次の権限があります。
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.RECORD_AUDIO" />