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" />