我在Galaxy S3上使用Android 4.1.2。目前android媒体播放器总是尝试RTSP UDP (RTP/AVP/UDP)方式连接RTSP服务器。
如果Android MediaPlayer在其UDP端口上没有接收到数据,它会超时,然后尝试RTSP TCP交错(RTP/AVP/TCP)。这很好,但它引入了10秒左右的延迟。我想避免这种延迟,并强制Android MediaPlayer总是使用RTSP TCP交错(RTP/AVP/TCP)的所有或特定的URL。我尝试在这里给出的建议发送461或400错误响应代码到SETUP请求。但是似乎mediaplayer并不关心响应,并为两个轨道发送SETUP命令,然后只是挂起连接。
如何解决这个问题?
我使用VLC而不是本机。请阅读Living555源代码。您可以在SETUP请求中指定Transport: RAW/RAW/UDP字段来选择要使用的协议。
这可能是错误的,但AFAIK android mediaplayer不支持RTP over TCP。