В чем разница между MediaPlayer и VideoView в Android?

Мне было интересно, есть ли разница между ними, когда дело доходит до потокового видео.

Я знаю, что VideoView может использоваться для потоковой передачи и для чего Mediaplayer для? Насколько я знаю, Mediaplayer может делать то же самое, что и VideoView правильно?

Может ли кто-нибудь дать мне ответ?

И если я хочу потоковое видео с сервера с помощью RTSP на Android, с чего я должен начать? VideoView или Mediaplayer?

Любое предложение?

Ответ 1

Задавал тот же вопрос, и, как я понял из того, что Mark (CommonsWare) сообщил о многочисленных потоках здесь, VideoView представляет собой обертку (200 соток строк кода) для MediaPlayer и SurfaceView для обеспечения встроенных элементов управления.

Он также любезно рассказал несколько примеров:

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

и пример из android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Также у некоторых людей возникли проблемы с воспроизведением видео на эмуляторе, поэтому обязательно проверьте его на самом устройстве, если у вас есть проблемы.

Ответ 2

VideoView - это, по сути, представление, привязанное к MediaPlayer, для упрощения реализации видео в вашем приложении. Если вы не выполняете особую работу, VideoView - это путь.

Тем не менее, вы также можете передать ссылку RTSP в систему, чтобы использовать наиболее подходящее приложение для воспроизведения видео, что еще проще сделать:

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

Видео должно быть протестировано на устройстве, так как воспроизведение эмулятора плохое, и вы также должны знать, что RTSP требует открытия дополнительного порта, который блокируется некоторыми брандмауэрами.

Ответ 4

VideoPlayer - это оболочка для MediaPlayer и SurfaceView, проще использовать видеоплеер с VideoView, чем с MediaPlayer, если видеофайлы хранятся во внутреннем хранилище приложения, использующего контент-провайдер, или хранят их как читаемые в мире, в противном случае он не будет работать