强制Android使用RTSP/AVP/TCP交织

强制Android使用RTSP/AVP/TCP交织,android,media-player,android-mediaplayer,rtsp,rtsp-client,Android,Media Player,Android Mediaplayer,Rtsp,Rtsp Client,我在GalaxyS3上使用Android 4.1.2。目前android mediaplayer总是尝试RTSP UDP(RTP/AVP/UDP)方法来连接RTSP服务器 如果Android MediaPlayer未在其UDP端口上接收数据,它将超时,然后尝试RTSP TCP交错(RTP/AVP/TCP)。这很好,但会导致10秒左右的延迟。我希望避免这种延迟,并强制Android MediaPlayer对所有或特定URL始终使用RTSP TCP交错(RTP/AVP/TCP) 我尝试了中给出的建议

我在GalaxyS3上使用Android 4.1.2。目前android mediaplayer总是尝试RTSP UDP(RTP/AVP/UDP)方法来连接RTSP服务器

如果Android MediaPlayer未在其UDP端口上接收数据,它将超时,然后尝试RTSP TCP交错(RTP/AVP/TCP)。这很好,但会导致10秒左右的延迟。我希望避免这种延迟,并强制Android MediaPlayer对所有或特定URL始终使用RTSP TCP交错(RTP/AVP/TCP)

我尝试了中给出的建议,将461或400错误响应代码发送到安装请求。但mediaplayer似乎并不关心响应,而是发送两个曲目的设置命令,然后挂起连接


如何解决此问题?

我正在使用VLC而不是本机。 请阅读Living555源代码。
您可以在设置请求中指定Transport:RAW/RAW/UDP字段以选择要使用的协议。

我可能错了,但AFAIK android mediaplayer不支持TCP上的RTP。

您是否解决过这个问题?为什么不自己初始化UDP套接字连接,并相应地处理流。这将避免Android为您处理它。我也有同样的问题,您解决了吗?不是这方面的专家,但如果您的api级别为16或更高,ExoPlayer()可能是一个替代方案。不幸的是,ExoPlayer不支持RTSP:目前还不支持;类似问题