2013-03-08 11 views
34

Używam Androida 4.1.2 na Galaxy S3. Obecnie Android mediaplayer zawsze próbuje metody RTSP UDP (RTP/AVP/UDP), aby połączyć się z serwerem RTSP.Zmuszanie Androida do używania przeplatanego RTSP/AVP/TCP

Jeśli Android MediaPlayer nie odbiera danych na swoich portach UDP ... timeout, a następnie próbuje przeplatanego RTSP TCP (RTP/AVP/TCP). Jest to w porządku, ale powoduje opóźnienie o około 10 sekund. Chcę uniknąć tego opóźnienia i zmusić Android MediaPlayer do używania zawsze przeplatanego RTSP TCP (RTP/AVP/TCP) dla wszystkich lub określonych adresów URL.

Wypróbowałem sugestię podaną w Here, aby wysłać kod odpowiedzi błędu 461 lub 400 na żądanie SETUP. Ale wydaje się, że mediaplayer nie przejmuje się odpowiedzią i wysyła polecenie SETUP dla obu ścieżek, a następnie po prostu zawiesza połączenie.

Jak mogę rozwiązać ten problem?

+0

Czy kiedykolwiek rozwiązałeś ten problem? – Marcel

+0

Tak, to samo pytanie. – Brianjs

+0

Dlaczego nie zainicjować połączenia z gniazdem UDP samodzielnie i odpowiednio obsłużyć strumień. Uniknęłoby to obsługi systemu Android dla ciebie – nathansizemore

Odpowiedz

1

Używam VLC zamiast natywnego. Przeczytaj kod źródłowy Living555. Możesz określić pole Transport: RAW/RAW/UDP w żądaniu SETUP, aby wybrać protokół do użycia.

0

Mogę się mylić, ale AFAIK android mediaplayer nie obsługuje RTP przez TCP.

+0

To jeszcze nie jest; podobne pytanie http://stackoverflow.com/questions/20676092/does-android-4-x-support-streaming-rtsp-over-tcp –

Powiązane problemy