我正致力于让RTSP网址在Android上运行。
我使用了MediaPlayer
和VideoView
来播放RTSP网址,但是它们都无法在G1设备和模拟器中播放。错误是PVMFFailureiin PLAYER_INIT
。
所以我想从头开始实现RTSP客户端。我开发了一个小应用程序,它交换所有消息(DESCRIBE,SETUP,PLAY,TEARDOWN)。但问题是在PLAY之后,我应该在transport_port中收到RTP数据包,如传输标头中所述,但TCP转储显示以下消息。我认为UDP数据包即将到来,但未在应用程序中收到。
11:38:50.213394 IP ew-in-f177.google.com.6970> 192.168.1.2.6970:UDP,长度444 11:38:50.213451 IP 192.168.1.2> ew-in-f177.google.com:ICMP 192.168.1.2 udp port 6970无法访问,长度36
请让我知道如何解决这个问题。
答案 0 :(得分:0)
Android中的多媒体引擎OpenCORE对于坚持各种标准非常严格。一些可能在野外工作的东西(例如,RTSP上的MP3)不受支持,因为它们不在相应的规范中。最少的,这就是我们被告知的。
因此,您尝试流式传输的媒体可能略微超出规范,或者服务器略微超出规范。您可能希望尝试找到一些已知可在Android上运行的RTSP流,让您的播放器正常使用它,然后专注于让它使用您自己的流。
答案 1 :(得分:0)
某些手机(我不知道Android是否属于此类别)在设备上包含防火墙。为了接收数据包,您可能需要执行打孔(即将虚拟数据包发送到服务器。这将在本地设备上运行的防火墙上创建允许规则。如果需要,它还将创建适当的NAT映射。)
设备是在WIFI上还是在运营商的网络上(哪个运营商)?