1

我正在努力使 RTSP url 在 Android 上工作。

  1. 我已经使用MediaPlayerVideoView播放了 RTSP url,但它们都无法在 G1 设备和模拟器中播放。错误是PVMFFailureiin PLAYER_INIT

  2. 所以我想从头开始实现一个 RTSP 客户端。我开发了一个小型应用程序,它交换所有消息(DESCRIBE、SETUP、PLAY、TEARDOWN)。但问题是在 PLAY 之后,我应该在传输标头中提到的 client_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 端口​​ 6970 不可达,长度 36

请让我知道如何解决这个问题。

4

2 回答 2

0

有些手机(我不知道安卓是否属于这一类)在设备上包含防火墙。为了接收数据包,您可能必须执行打孔(即向服务器发送一个虚拟数据包。这将在本地设备上运行的防火墙上创建一个允许规则。如果需要,它还将创建适当的 NAT 映射.)

设备是在 WIFI 上还是在运营商的网络上(哪个运营商)?

于 2010-03-11T00:03:08.873 回答
0

Android 中的多媒体引擎 OpenCORE 对遵守各种标准相当严格。不支持某些可能在野外工作的东西(例如,RTSP 上的 MP3),因为它们不在相应的规范中。至少,这就是我们被告知的。

因此,您尝试流式传输的媒体可能稍微不符合规范,或者服务器稍微不符合规范。您可能希望尝试找到一些已知可在 Android 上运行的 RTSP 流,让您的播放器使用它正常工作,然后专注于让它使用您自己的流。

于 2009-08-01T16:04:14.953 回答