У чому різниця між MediaPlayer та VideoView в Android


95

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

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

Хто-небудь може дати мені відповідь?

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

Будь-яка пропозиція?


Це не повинно бути на суперкористувачі?
Куаміс,

13
Я думаю, що воно тут належить. Це не питання програмування Android?
juell

Відповіді:


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.