Jaka jest różnica między MediaPlayer i VideoView w systemie Android

95

Zastanawiałem się, czy jest między nimi różnica, jeśli chodzi o przesyłanie strumieniowe wideo.

Wiem, że VideoViewmożna go używać do przesyłania strumieniowego i do czego służy Mediaplayer? O ile wiem, MediaPlayerczy można zrobić to samo, co VideoViewprawda?

Czy ktoś może mi odpowiedzieć?

A jeśli chcę przesyłać strumieniowo wideo z serwera za pomocą RTSP do Androida, od którego powinienem zacząć? VideoViewczy MediaPlayer?

Jakieś sugestie?

oattie
źródło
Czy to nie powinno być na superużytkowniku?
Quamis
14
Myślę, że należy tutaj. Czy to nie jest kwestia programowania na Androida?
czerwiec

Odpowiedzi:

40

Zadawałem to samo pytanie i jak zrozumiałem z tego, co Mark (CommonsWare) radził w wielu wątkach tutaj, VideoView jest opakowaniem (200 wierszy kodu) dla MediaPlayer i SurfaceView, aby zapewnić osadzone kontrolki.

Uprzejmie podzielił się również kilkoma przykładami:

https://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android/video/VideoDemo.java

https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/Player.java

i przykład z zestawu Android SDK http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Ponadto niektóre osoby miały problemy z odtwarzaniem wideo na emulatorze, więc jeśli masz problemy, przetestuj je na rzeczywistym urządzeniu

miszkin
źródło
17

VideoView to zasadniczo widok powiązany z odtwarzaczem MediaPlayer, aby znacznie ułatwić wdrażanie filmów w Twojej aplikacji. Jeśli nie wykonujesz zbyt wielu niestandardowych prac, najlepszym rozwiązaniem jest VideoView.

To powiedziawszy, możesz również przekazać łącze RTSP do systemu, aby użyć najbardziej odpowiedniej aplikacji do odtwarzania wideo, co jest jeszcze łatwiejsze:

String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

Wideo należy przetestować na urządzeniu, ponieważ odtwarzanie w emulatorze jest słabe, a ponadto należy pamiętać, że RTSP wymaga otwarcia dodatkowego portu, który jest blokowany przez niektóre zapory.

Ian G. Clifton
źródło
który jest szybszy?
Albert Chen,
0

VideoPlayer jest opakowaniem dla MediaPlayer i SurfaceView, łatwiej jest zaimplementować odtwarzacz wideo z VideoView niż z MediaPlayer, jeśli pliki wideo są przechowywane w pamięci wewnętrznej aplikacji, użyj dostawcy zawartości lub przechowuj je jako czytelne dla świata, w przeciwnym razie nie działa

HocineHamdi
źródło