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


95

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

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

Кто-нибудь может дать мне ответ?

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

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


Разве это не должно быть на суперпользователе?
Quamis

13
Я думаю, это место здесь. Разве это не вопрос программирования под Android?
juell 04

Ответы:


40

Задавал тот же вопрос, и, как я понял из того, что Марк (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

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


17

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

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

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

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


какой быстрее?
Альберт Чен


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.