2013-03-08 8 views
34

Sto utilizzando Android 4.1.2 su Galaxy S3. Attualmente il mediaplayer di Android cerca sempre il metodo RTSP UDP (RTP/AVP/UDP) per connettersi con il server RTSP.Forzare Android per utilizzare RTSP/AVP/TCP intercalato

Se Android MediaPlayer non riceve i dati sulle sue porte UDP. Timeout e quindi prova RTSP TCP interlacciato (RTP/AVP/TCP). Questo va bene, ma introduce un ritardo di 10 secondi circa. Voglio evitare questo ritardo e forzare Android MediaPlayer a utilizzare sempre RTSP TCP interlacciato (RTP/AVP/TCP) per tutti o URL specifici.

Ho provato il suggerimento fornito in Here per inviare codice di risposta errore 461 o 400 alla richiesta di SETUP. Ma sembra che il mediaplayer non si preoccupi della risposta, e manda il comando SETUP per entrambe le tracce, quindi blocca semplicemente la connessione.

Come posso risolvere questo problema?

+0

Hai mai risolto questo problema? – Marcel

+0

Sì, stessa domanda. – Brianjs

+0

Perché non inizializzare autonomamente una connessione socket UDP e gestire lo stream di conseguenza. Ciò eviterebbe che Android lo gestisse per te – nathansizemore

risposta

1

Sto utilizzando VLC anziché quello nativo. Legge il codice sorgente di Living555 pls. È possibile specificare il campo Trasporto: RAW/RAW/UDP nella richiesta SETUP per scegliere quale protocal utilizzare.

0

potrei sbagliarmi ma AFAIK Android Mediaplayer non supporta RTP su TCP.

+0

Non è ancora valido; domanda simile http://stackoverflow.com/questions/20676092/does-android-4-x-support-streaming-rtsp-over-tcp –