2013-03-08 60 views
34

我在Galaxy S3上使用Android 4.1.2。目前android mediaplayer總是嘗試使用RTSP UDP(RTP/AVP/UDP)方法連接RTSP服務器。強制Android使用RTSP/AVP/TCP交錯

如果Android MediaPlayer沒有收到其UDP端口上的數據,則超時,然後嘗試RTSP TCP交錯(RTP/AVP/TCP)。這很好,但它引入了10秒左右的延遲。我想避免這種延遲,並強制Android MediaPlayer始終對所有或特定的URL使用RTSP TCP交錯(RTP/AVP/TCP)。

我嘗試了Here給出的建議發送461或400錯誤響應代碼給SETUP請求。但似乎mediaplayer不關心響應,併發送兩個軌道的SETUP命令,然後掛起連接。

我該如何解決這個問題?

+0

你有沒有解決過這個問題? – Marcel 2013-08-01 18:03:45

+0

是的,同樣的問題。 – Brianjs 2014-01-11 02:28:15

+0

爲什麼不自己初始化一個UDP套接字連接,並相應地處理這個流。這會避免Android爲你處理它 – nathansizemore 2014-02-19 03:59:26

回答

1

我使用的是VLC而不是原生的。 請閱讀Living555源代碼。 您可以在SETUP請求中指定Transport:RAW/RAW/UDP字段來選擇要使用的協議。

0

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

+0

它還沒有到目前爲止;類似的問題http://stackoverflow.com/questions/20676092/does-android-4-x-support-streaming-rtsp-over-tcp – 2014-12-20 20:53:10