tri*_*468 5 java android multicast rtp
我正在尝试使用Android的RTP类将音频流从一台设备多播到其他设备。
我完全不希望使用任何第三方库。
我能够使用AudioStream并AudioGroup设置彼此的IP地址在两个设备之间流式传输双向音频,但是我想流式传输到多播组。
如果我尝试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();
Run Code Online (Sandbox Code Playgroud)
此外,清单文件中还具有以下权限:
<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" />
Run Code Online (Sandbox Code Playgroud)
经过大量研究后,我发现 RTP 类确实支持发送多播,但不支持接收。大概这是因为使用的套接字不是MulticastSockets。
另外,对于那些感兴趣的人来说,选项卡 2 实际上是不支持加入多播组的设备之一(即它不发送 IGMP 加入数据包),但如果您在网络基础设施中设置静态多播组,则将收到数据包 - 因此为什么我上面提到我知道他们确实支持它。
查看 Android 设备是否支持加入多播组的一种快速方法是查找该/proc/net/igmp文件是否存在。
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |